Próbuję zdekodować zakodowany ciąg shift-jis, taki jak poniżej:
string.decode("shift-jis").encode("utf-8")
aby móc go zobaczyć w moim programie.
Gdy natrafiam na 2 znaki shift-jis, na hex "0x87 0x54" i "0x87 0x55", pojawia się ten błąd:
UnicodeDecodeError: "shift_jis" codec can"t decode bytes in position 12-13: illegal multibyte sequence
Ale jestem pewien, że są poprawnymi znakami shift-jis: http://www.rikai.com/library/kanjitables/kanji_codes.sjis.shtml
Zauważyłem również, że te postacie pojawiają się jakoczarne pola w moim edytorze tekstu shift-jis, co oznacza, że nie są rozpoznawane. Więc jest coś wyjątkowego w tych dwóch znakach, które spowodowały, że mój edytor i dekoder Pythona zawiodły.
(przepraszam, nie mogłem zamieścić przykładowego łańcucha, ponieważgdy te znaki są obecne, nie są one dodawane do schowka od tego momentu, a także są automatycznie konwertowane na unicode.
Odpowiedzi:
8 dla odpowiedzi № 1Istnieje wiele wersji Shift JIS. The shift_jis
kodek jest JIS X 0208, podczas gdy ta tabela jest JIS X 0213, odpowiadający shift_jisx0213
kodek.
>>> u"⑲⑳Ⅰ".encode("shift_jisx0213")
"x87Rx87Sx87T"