我正在尝试将一个软件转换成中文,但我在使用数据库时遇到了一些问题。它返回奇怪的字符串,我猜这是因为编码错误,但我不确定该怎么做。
如果我将列数据设置为 头版 它返回
>> 头版
如果我将列数据设置为头版,它会返回
>> ??
它工作正常,因为如果我将 '头版' 插入数据库,它将作为 '头版' 插入,但我想要它正确显示字符,因此在数据库中搜索会更容易。
我试过在连接到数据库时运行这个查询
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/