代码之家  ›  专栏  ›  技术社区  ›  fmark

如何以不支持utf-8的格式存储unicode数据

  •  4
  • fmark  · 技术社区  · 14 年前

    好吧,这里还有一个字符编码问题,说明我对Unicode的无知。

    .xls 文件,并将其存储在ESRI shapefile中 .shp . 对于Excel版本>excel文件中的文本以Unicode格式存储。但是,Unicode(特别是 UTF-8 support for shapefiles is inconsistent 因此我认为我不应该使用它。然而,shapefile确实支持老式的代码页。

    在必须将Unicode字符串转换为未知但特定代码页中的字符串的情况下,最佳做法是什么?

    ? ). 这是通常的方法吗?

    我肯定能用的不止这些 只是 系统代码页。因为 上海医药 文件使用 .dbf 应支持格式(请参阅 xBase format description ). 支持的代码页包括: DOS USA , DOS Multilingual, Windows ANSI, Standard Macintosh EE MS-DOS , Nordic MS-DOS , Russian MS-DOS , Icelandic MS-DOS , Kamenicky (Czech) MS-DOS , Mazovia (Polish) MS-DOS , Greek MS-DOS (437G) Turkish MS-DOS , Russian Macintosh , Eastern European Macintosh , Greek Macintosh Windows EE , Russian Windows , Turkish Windows , Greek Windows

    *.cpg 指定要使用的其他代码页的文件(尽管我了解对 utf-8 ,我怀疑其他许多代码页都是有限的)。

    .xls文件 文件夹。

    2 回复  |  直到 14 年前
        1
  •  1
  •   dan04    14 年前

    企业的最佳实践是什么 必须转换 Unicode字符串到

    取决于文件格式。如果它支持Unicode“转义序列”像XML的 € \u20AC ,然后使用这些,您不会丢失任何信息。如果没有,则需要另一种方法。

    因此,我认为我必须 以某种方式估计“最佳”代码页 要使用,

    编辑 :因此您可以选择代码页:

    01h     DOS USA                      code page 437
    6Ah     Greek MS-DOS (437G)          code page 737
    02h     DOS Multilingual             code page 850
    64h     EE MS-DOS                    code page 852
    6Bh     Turkish MS-DOS               code page 857
    67h     Icelandic MS-DOS             code page 861
    65h     Nordic MS-DOS                code page 865
    66h     Russian MS-DOS               code page 866
    C8h     Windows EE                   code page 1250
    C9h     Russian Windows              code page 1251
    03h     Windows ANSI                 code page 1252
    CBh     Greek Windows                code page 1253
    CAh     Turkish Windows              code page 1254
    04h     Standard Macintosh           code page 10000
    98h     Greek Macintosh              code page 10006
    96h     Russian Macintosh            code page 10007
    68h     Kamenicky (Czech) MS-DOS
    69h     Mazovia (Polish) MS-DOS
    97h     Eastern European Macintosh
    

    要选择代码页,我建议:

    1. 如果没有,试着找一个能准确表示数据的代码页(如果不能,则找一个能最小化不可表示字符的代码页)。先尝试代码页1252,然后尝试其他125x代码页。除非有方框图字符,否则不要用DOS代码页。

    然后转换所有不支持的 将角色转换为最接近的角色 害怕?)。这是平常的吗 接近?

    然而,我们只替换字母和数字,而不是标点符号。替换为“”会破坏一些文件格式。

        2
  •  1
  •   casablanca    14 年前

    你的课文是用什么语言写的?如果字符大部分是ASCII,那么最好将原始UTF-8编码的文本写成这样。不支持UTF-8的程序仍能正确读取ASCII文本,并为未知字符显示乱码ASCII。

    推荐文章