C#SQL选择中文字符返回奇怪的字符

时间:2015-02-01 15:36:47

标签: c# mysql chinese-locale

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

如果我将列数据设置为å¤'ç‰,则返回

>> 头版

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

>> ??

它运行正常,因为如果我将'头版'插入数据库,它将被插入'å¤'ç‰',但我希望它正确显示字符,因此搜索数据库会更容易。

我已经尝试在连接到数据库时运行此查询

SET NAMES utf8;

也尝试了这个

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

但它没有改变任何东西。 文化是zh-Hans。

1 个答案:

答案 0 :(得分:1)

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

<强>更新

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

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