quali caratteri Unicode rientrano in 1, 2, 4 byte? Qualcuno può indicarmi di completare la tabella dei caratteri?UTF-8 Dimensione codifica
risposta
I caratteri sono codificati in base alla loro posizione nell'intervallo. Si può effettivamente trovare l'algoritmo nella pagina di Wikipedia per UTF8 - è possibile implementare molto rapidamente Wikipedia UTF8 Encoding
- U + 0000 a U + 007F sono (correttamente) codificato con un byte
- U + 0080 a U + 07FF sono codificati con 2 byte
- U + 0800 a U + FFFF sono codificati con 3 byte
- U + 010000 a U + 10FFFF sono codificati con 4 byte
L'articolo wikipedia su 012.303.903.962.ha una buona abbastanza descrizione della codifica:
- 1 byte = punti codice 0x000000 a 0x00007F punti
- 2 byte = codice 0x000070 a 0x0007FF punti
- 3 byte = codice 0x000800 a 0x00FFFF
- 4 bytes = codice indica 0x010000 a 0x10FFFF
I grafici possono essere scaricati direttamente da unicode.org. È un set di circa 150 file PDF, perché un singolo grafico sarebbe enorme (forse 30 MiB).
Si noti inoltre che Unicode (rispetto a qualcosa come ASCII) è molto più complesso da elaborare: ci sono cose come testo da destra a sinistra, segni di ordine dei byte, punti di codice che possono essere combinati ("composti") per creare un singolo carattere e diversi modi di rappresentare esattamente la stessa stringa (e un processo per convertire stringhe in una forma canonica adatta per il confronto), molto più caratteri dello spazio bianco, ecc. Suggerirei di scaricare l'intera specifica Unicode e di leggere la maggior parte di esso se hai intenzione di fare più di "non molto".
I compromessi UTF-8 da 1 a un limite di 6 byte, sebbene la quantità corrente di punti di codice sia coperta con soli 4 byte. UTF-8 utilizza il primo byte per determinare quanto tempo (in bytes) il personaggio è - vedi i vari collegamenti alla pagina Wiki:
byte singolo UTF-8 è efficace ASCII - UTF-8 era progettato per essere compatibile con esso, che è il motivo per cui è più prevalente di UTF-16, per esempio.
Edit: A quanto pare, è stato concordato punti di codice del UTF-8 non superi 21 bit (4 sequenze di byte) - ma ha la capacità tecnica di gestire fino a 31 bit (6 byte UTF-8) .
UTF-8 è limitato a 4 byte. I punti di codice Unicode sono limitati a U + 1FFFFF (21 bit) e la codifica UTF-8 è canonica (deve scegliere la più corta). Pertanto, non si può mai finire con una sequenza UTF-8 a 5 byte. O sarebbe decodificato in un personaggio passato U + 1FFFFF, o non sarebbe canonico. – MSalters
Il set di caratteri corrente di UTF-8 utilizza solo 4 byte, ma è stato progettato per punti di codice fino a 31 bit, risultando in una sequenza di 6 byte. – Mikaveli
* Caratteri a 6 byte *? [shudder] – Piskvor
- 1. Codifica UTF8 Java
- 2. codifica knitr e UTF8
- 3. Dimensione colonna varchar MySQL UTF8
- 4. Decodifica utf8 con doppia codifica in Python
- 5. Codifica UTF8 con vCard in Windows
- 6. text to pdf con codifica utf8 (alternativa a a2ps)
- 7. bug Java? Perché extra zero byte nella codifica utf8?
- 8. Come leggere il file con codifica UTF8 utilizzando RandomAccessFile?
- 9. Come modificare la codifica della connessione dplyr :: tbl su utf8?
- 10. La codifica UTF8 non funziona quando si usa ajax
- 11. Rubino CSV UTF8 Errore di codifica durante la lettura
- 12. Rails: problemi di codifica con gli hash serializzati nonostante UTF8
- 13. java utf8 codifica - char, i tipi di stringa
- 14. Differenza tra codifica utf-8 e utf8 in Python 3.5
- 15. ant: avviso: carattere non impostabile per la codifica UTF8
- 16. modulo php invia utf8?
- 17. C# UTF8 Lettura/emissione
- 18. primefaces fileupload filtro con filtro utf8 caratteri
- 19. java: come convertire un file in utf8
- 20. Come convertire una stringa in UTF8?
- 21. Inserire dati UTF8 in SQL Server 2008
- 22. Python che converte latin1 in UTF8
- 23. Come export csv da MySQL utf8
- 24. Calcola la dimensione in un messaggio con codifica Base 64
- 25. PostgreSQL + PHP + UTF8 = sequenza di byte non valida per la codifica
- 26. Ruby 2.2: PG :: CharacterNotInRepertoire: ERRORE: sequenza di byte non valida per la codifica "UTF8"
- 27. C'è qualche libreria Lua che converte una stringa in byte usando la codifica UTF8?
- 28. Compilare (javac) un codice sorgente Java con codifica UTF8 con una BOM
- 29. Qual è la differenza tra UTF8/UTF16 e Base64 in termini di codifica
- 30. Errore Postgres su insert - ERRORE: sequenza byte non valida per la codifica "UTF8": 0x00
Leggere prima questo: http://www.joelonsoftware.com/articles/Unicode.html –
Una tabella completa? Sarà un ENORME. Vedi questo per una versione stampata del Basic Plilingual Plane (ce ne sono altri 16): http://shop.designinmainz.de/en/Poster/decodeunicode-Basic-Multilingual-Plane-BMP-Map Vedi DecodeUnicode per un wiki come rappresentazione di caratteri Unicode: http://www.decodeunicode.org/en – Piskvor
Si potrebbe anche leggere su Universal Codes: http://en.wikipedia.org/wiki/Universal_code_%28data_compression%29 – ruslik