如何将 SQL Server 表中的 ANSII 字符修复为 UTF-8

akd*_*akd 5 sql-server utf-8 non-unicode

我有一个数据导入过程,用于将 csv 文件中的数据导入到 SQL Server 中的表中。

\n\n

我注意到有些列包含一些重音字符。

\n\n

例如,我注意到数据库表中的以下文本

\n\n
\n

CAF\xc3\x83\xe2\x80\xb0

\n
\n\n

我在 Notepad++ 中打开一个新文件,将编码更改为 ANSI 并使用上述文本保存该文件。

\n\n

然后将编码改为UTF-8

\n\n

结果是:

\n\n
\n

CAF\xc3\x89

\n
\n\n

我不确定出了什么问题。但是有没有办法解决数据库表中的这个问题呢?

\n\n

我想在数据库表中显示相同的 CAF\xc3\x89 而不是 CAF\xc3\x83\xe2\x80\xb0

\n\n

因为当此列显示在网站上时,即使网页上的编码为 UTF-*,它仍然将字符串显示为 CAF\xc3\x83\xe2\x80\xb0,而不是 CAF\xc3\x89。

\n\n

我还检查了该列的排序规则类型:

\n\n
\n

SQL_Latin1_General_CP1_CI_AS

\n
\n\n

谢谢,

\n

Nic*_*ick 1

我遇到了同样的问题,并结束使用集成工具将表导出到 MySQL 并运行以下查询:

UPDATE myTable Set thefield= CONVERT(BINARY CONVERT(thefieldUSING latin1) USING utf8);
Run Code Online (Sandbox Code Playgroud)

这是我能够解决这个问题的唯一方法。