2009-05-13 10 views
3

J'utilisais la bibliothèque Iconv sur Ruby pour convertir l'encodage de UTF-8 en UTF-32, UTF-16 etc et c'était assez bon.une bonne alternative à la bibliothèque Iconv pour la conversion d'encodage?

Cependant, je ne vois un problème lors de la conversion de UTF-Big5 | 8 - une exception est levée pour la séquence non valide ...

et le problème disparaît quand il est de convertir cp950 en UTF-8 , dont CP950 est essentiellement Big5 ...

donc je me demande s'il existe une autre bonne alternative en plus d'utiliser Iconv? Ou est le CP950 une meilleure version de Big5?

Répondre

2

Bien que Big5 et CP950 soient presque les mêmes, il existe des différences. Sur le site Unicode, il existe des fichiers de référence pour convertir différents encodages en Unicode, vous verrez que Big5 et CP950 sont différents. Mon expérience d'Iconv a été bonne - je soupçonne que son comportement peut être correct.

Certains des caractères trouvés dans CP950 mais pas Big5 ont les valeurs hexadécimales: 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0xA0, 0xA1, 0xA15A, 0xA1C3, 0xA1C5, 0xA1FE, 0xA240, 0xA3E1, 0xA2CC, 0xA2CE. Si l'une de vos entrées contient ces valeurs, le fichier n'est pas valide Big5.

2

Il existe de nombreuses variantes big5. CP950 est juste l'un d'entre eux. Pour big5, je suggère d'utiliser "big5-2003", qui est la version officielle mise à jour. Pour big5, je suggère d'utiliser "big5-2003".

2

Jetez un oeil à ICU, c'est une bibliothèque qui effectue des conversions de caractères entre autres choses. D'autre part, les autres réponses suggèrent que vous devrez peut-être examiner vos codages plus attentivement.

Questions connexes