none
多语言问题想请教一下 RRS feed

  • 问题

  • 最近遇到一个多语言问题想请教一下
    事情的起因是客户发来了以ISO-8859-1(西欧语言)编码格式的txt文档,导致程序无法识别出其中的特殊字符,最终结果就是特殊字符导入到DB的中是乱码
    我们的解决方法是先ISO-8859-1转UTF16 Little-Endian编码,到后导入到DB的nvarchar或nchar字段中即可正常显示。
    (同时我们也试过了UTF-8,结果仍旧是乱码,因此我觉得8位的UTF是无法描述部分ISO-8859-1的特殊字符的)

    但是UTF-16真的能涵盖所有的非常用编码么?是否需要使用UTF-32?
    从MS SQL的联机丛书上看,nvarchar和nchar是采用两个字节编码的形式,也就是说其单字符宽度是16位,那如果使用了UTF-32的数据源会咋样呢?
    (我简单测试了一下,如果指定使用UTF-32格式是能将数据正确导入到DB的)
    将4个字节的UTF-32的数据导入到两个字节编码nvarchar中,那多余的2个字节去哪里了?
    2013年9月17日 6:18

答案

全部回复