Domanda

Sto cercando di vedere quali diverse stringhe sarebbe simile in differenti codifiche ...

Ad esempio:

>>> str1 = "asdf"
>>> str1.encode('utf-16')
'\xff\xfea\x00s\x00d\x00f\x00'
>>> str1.encode('base64')
'YXNkZg==\n'

E quelli tutto prendermi quello che voglio.

Ma mi piacerebbe vedere che cosa determinate stringhe sarà simile a GBK, GB2312, o GB18030.

>>> str1.encode('gbk')
'asdf'
>>> str1.encode('gb2312')
'asdf'
>>> str1.encode('gb18030')
'asdf'

Nel caso non le uscite essere qualcosa di diverso 'asdf'?

Ho Python 2.7 e posso vedere la gbk.py e gli altri file in lib / codifiche

mi chiedevo se non vedo alcun cambiamento dell'uscita perché quelle lettere appariranno lo stesso in quella codifica, o perché ho bisogno di qualche modo consentire l'uso di tali codifiche (una sorta di importazione necessaria?) ...

È stato utile?

Soluzione

Finché solo byte di valori 0-127 sono utilizzati, queste codifiche sono equivalenti a ASCII. Lo stesso vale per UTF-8. Per veramente vedere la differenza, provare con alcuni cinesi attuali.

Altri suggerimenti

Dalla pagina Wikipedia:

Un carattere è codificato come 1 o 2 byte. Un byte nell'intervallo 00-7F è un singolo byte che significa la stessa cosa come avviene in ASCII. rigorosamente parlando, ci sono 96 caratteri e 32 codici di controllo in questo intervallo.

Quindi no, la stringa di caratteri ASCII prova non deve codificare come qualcosa di diverso (almeno non per GBK, non ho controllato le varietà).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top