我正在尝试将一个软件转换成中文,但我在使用数据库时遇到了一些问题。它返回奇怪的字符串,我的猜测是因为错误的编码,但我不知道该怎么做。
如果我将列数据设置为å¤'ç‰,则返回
>> 头版
如果我将列数据设置为头版,则返回
>> ??
它运行正常,因为如果我将'头版'插入数据库,它将被插入'å¤'ç‰',但我希望它正确显示字符,因此搜索数据库会更容易。
我已经尝试在连接到数据库时运行此查询
SET NAMES utf8;
也尝试了这个
SET NAMES utf8; SELECT * FROM `table` ORDER BY num;
但它没有改变任何东西。 文化是zh-Hans。
答案 0 :(得分:1)
该列应为nvarchar
。此类型支持Unicode,并允许使用非英语字符(如普通话,阿拉伯语等)。
<强>更新强>
以上是针对SQL Server的。对于MySql,列应为VARCHAR(50) CHARACTER SET UCS2
。
对于中文,UCS2优于utf-8,因为其大多数字符需要16位代码点。如果使用utf-8,则需要3个字节来存储代码点。