C# SQL 选择汉字返回怪异字符

标签 c# mysql chinese-locale

我正在尝试将一个软件转换成中文,但我在使用数据库时遇到了一些问题。它返回奇怪的字符串,我猜这是因为编码错误,但我不确定该怎么做。

如果我将列数据设置为 头版 它返回

>> 头版

如果我将列数据设置为头版,它会返回

>> ??

它工作正常,因为如果我将 '头版' 插入数据库,它将作为 '头版' 插入,但我想要它正确显示字符,因此在数据库中搜索会更容易。

我试过在连接到数据库时运行这个查询

SET NAMES utf8;

也试过这个

SET NAMES utf8; SELECT * FROM `table` ORDER BY num;

但这并没有改变任何东西。 文化集 zh-Hans。

最佳答案

该列应为 nvarchar .此类型支持 Unicode,并允许使用非英文字符(如普通话、阿拉伯语等)。

更新

以上是针对 SQL Server 的。对于 MySql,该列应该是 VARCHAR(50) CHARACTER SET UCS2

对于中文,UCS2 比 utf-8 更好,因为它的大多数字符都需要 16 位代码点。如果使用 utf-8,则需要 3 个字节来存储代码点。

关于C# SQL 选择汉字返回怪异字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28264436/

相关文章:

mysql - MYSQL 5.5.8、5.6最新版无法插入汉字

r - 如何用 knitr::spin 显示/打印汉字

xml - 将包含中文字符的 XML 发布到 Microsoft Translator API 会引发反序列化异常

c# - 我如何检测我的显示器现在设置的来源?

mysql - 去和 mysql 和 cloneTLSConfig

mysql - FROM_UNIXTIME 与 DATE_ADD 的秒数不匹配

mysql - 如何优化此查询并减少其执行时间

c# - 如何将列表归结为最不常见的字符串?

c# - 根据字符串长度.NET 用新行拆分多行文本框文本

c# - 将多个对象类型传递到有限制的集合的正确方法