Encoding 对于编码转换,Iconv库有什么好的替代品吗?

Encoding 对于编码转换,Iconv库有什么好的替代品吗?,encoding,iconv,big5,Encoding,Iconv,Big5,我使用Ruby上的Iconv库将编码从UTF-8转换为UTF-32、UTF-16等,这非常好 然而,当从Big5转换到UTF-8时,我确实看到了一个问题——对于无效序列会引发异常 当它从CP950转换到UTF-8时,问题就消失了,其中CP950基本上是大5 所以我想知道除了使用Iconv,是否还有其他好的选择?还是CP950是Big5的更好版本?尽管Big5和CP950几乎相同,但也存在差异。在Unicode网站上有用于将不同编码转换为Unicode的参考文件,您将看到它们是不同的。我对Icon

我使用Ruby上的Iconv库将编码从UTF-8转换为UTF-32、UTF-16等,这非常好

然而,当从Big5转换到UTF-8时,我确实看到了一个问题——对于无效序列会引发异常

当它从CP950转换到UTF-8时,问题就消失了,其中CP950基本上是大5


所以我想知道除了使用Iconv,是否还有其他好的选择?还是CP950是Big5的更好版本?

尽管Big5和CP950几乎相同,但也存在差异。在Unicode网站上有用于将不同编码转换为Unicode的参考文件,您将看到它们是不同的。我对Iconv的体验很好——我怀疑它的行为可能是正确的


在CP950中找到但不是Big5的一些字符具有十六进制值:
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、0x1D、0x1E、0x1F、0x20、0x21、0x22、0x23、0x24、0x25、0x26、0x28、0x2A、0x2B,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、0x5D、0x65、0x6E、0x65、0x6E、0x65、0x65、0x6E、0x65、0x6E、0x65、0x65、0x65、0x65、0x6F、0x65,0x67、0x67、0x67、0x68、0x68、0x68、0x69、0x69、0x6、0x6 6、0x6 6、0x67、0x70、0x71、0x72、0x72、0x72、0x67、0x67、0x67、0x68、0x68、0x67、0x67、0x68、0x6 6 6、0x6 6、0x6 6 6、0x6 6 6个、0x6 6个丁、0x70、0x70、0x70、0x70 70、0x70、0x7 7、0x7、0x7、0x7、0x7、0x7、0x7、0x7、0x7、0x7、0x7、0x72、0x72、0x72、0x72、0x72、0x72、0x72、0x72、0x72、0x72、0x72、0x72、0x72、0x72、0x72、0x7、0x7、0x87、0x88、0x88、0x88、0x88、0x88、0x88、0x88、0x88、0x88、0x88、0x88、0xf,0xA0,0xA1、0xA15A、0xA1C3、0xA1C5、0xA1FE、0xA240、0xA3E1、0xA2CC、0xA2CE
。如果您的任何输入包含这些值,则该文件不是有效的Big5。

有许多Big5变体。CP950只是其中之一。

对于big5,我建议使用“big5-2003”,这是官方的更新版本。

看看,这是一个进行字符转换的库

另一方面,其他答案表明您可能需要更仔细地检查编码