我最近遇到了几个损坏的 UTF-8 字符串,这些字符串被转换为我认为是 ISO-Latin-1 的字符串,我想知道是否已经有一些工具可以用来自动转换回来,因为没有信息实际上被破坏了,实际上并没有丢失任何位。
本质上,这样的事情会采用一系列字符并显示如果这些相同的位被显示为 utf-8 或其他编码时它们会是什么。这样的工具存在吗?(我知道自己创建一些东西来做这件事很容易,甚至只是手动做,所以如果真的没有任何东西,我可能会这样做。)
澄清一下:我遇到的特殊情况是,在特定论坛上,文本编辑器允许使用 utf-8 字符,但论坛本身会显示与 utf-8 字符的各个字节相对应的字符。
对于字符 U+0000 到 U+007F,它是完全相同的字符,但是:
- U+0080 到 U+07FF 字符改为显示为 U+00C0 和 U+00DF 之间的一个字符,后跟 U+0080 和 U+00BF 之间的一个字符
- U+0800 到 U+FFFF 字符改为显示为 U+00E0 和 U+00EF 之间的一个字符,后跟 U+0080 到 U+00BF 之间的两个字符
等等...
所以“...”实际上应该显示为字符 U+2xy6,(x 是 '�' 的中间 4 位,y 是 '�' 的后 2 位加上 '10')。
虽然我仍然无法确切地弄清楚 U+0080 和 U+00BF '�' 之间的哪个字符。
我想要做的是获取所有 UTF-8 字符串字符的 ISO-Latin-1 位值,将它们连接在一起,并解释生成的位序列,就好像它包含 UTF-8 编码字符一样。