【发布时间】:2012-03-03 01:06:41
【问题描述】:
我有一个编码为 Windows-ANSI(Windows 代码页 1252)的 DBF 文件。我正在使用 ODBC 驱动程序将此文件作为表导入 SQL Server 数据库。当我这样做时,我会丢失一些字符信息。
首先,为了验证 DBF 文件是否按预期编码,我使用十六进制编辑器打开文件并搜索相关字符。它是代码页 1252 上的“小子弹”,它存储在文件中的 0x95 处,因此,至少对于那个字符,编码似乎符合预期。
我进行了搜索,发现有人说导入到 nvarchar 而不是 varchar 列会有所不同,所以当我进行导入时,我将包含有问题的字符的列重新映射到 nvarchar。
它导入的数据库有一个排序规则“SQL_Latin1_General_CP1_CI_AS”,从我在 MSDN 上阅读的页面中,“CP1”表明这应该等同于 windows 代码页 1252。
当我进行导入时,字符被导入为 0xf2 或 0x5625。到目前为止,我还没有找到任何原因说明为什么会有不同的导入。
有没有人遇到过这样的问题?你做了什么来解决它?有什么我应该研究或尝试但我还没有的事情吗?
标签: sql-server-2008 encoding collation dbf