Sto scrivendo un programma che utilizza QUdpSocket per la trasmissione di dati attraverso la rete. Questo è il mio primo programma di socket e mi sono imbattuto in un problema interessante chiamato Endianness.Qt socket ed endianness
La mia domanda attuale, devo preoccuparmi di Endianness quando sto usando QNetwork come libreria dei miei socket? Se devo preoccuparmi, cosa devo fare per evitare correttamente i problemi di Endianness?
Grazie in anticipo.
Non è sempre necessario o ragionevole farlo, se tu fossi in streaming vide o non avrebbe senso convertire tutti i byte in htons e poi tornare indietro - sarebbe meglio avere un codice in modo che la macchina ricevente sapesse da che parte stavano i dati. –
Wrong, UTF-8 è una codifica a larghezza variabile, garantita per rappresentare ogni carattere Unicode e può quindi richiedere fino a 4 byte. –
No, la tua comprensione non è corretta. UTF-8 è una codifica a larghezza variabile, ma non è influenzata da endianness perché i caratteri a lunghezza variabile sono composti da sequenze di byte ordinate, a differenza di UTF-16 o UTF-32 dove l'unità più piccola è un intero binario di 2 (o 4) byte il cui ordine dei byte è determinato dall'architettura endianness. –