比如“中国”->“4E2D 56FD”。
解决方案 »
- ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: N
- 一个关于游标的问题
- 如何给一个mysql表所有记录进行编号
- 问一个FEDERATED storage engine的问题
- 有一张mysql表,我想经过sql处理后变成另外的表,请高手帮忙
- 存储过程 mysql 没分了
- 同样的查询结果,为什么效率相差十倍?
- 关于except用法-求助
- 如何把mssql server 导入 mysql 数据库!
- 请问关于数据的使用问题
- 分组查询语句,求解。
- 如何用Navicate到处MySQL中创建表的SQL语句
select hex('中国');
UTF16的有专门的函数转换,可以用语言转换OR存入表中再查找
select hex(CONVERT('中国' USING ucs2) );
这个就是utf8啊,找到一个vc中utf8->utf16的算法,位运算在mysql中也有,难度在“取字节”进行操作。 1 //UTF-8格式的字符串
2 const char* utf8 = "你";
3 wchar_t unicode;
4 unicode = (utf8[0] & 0x1F) << 12;
5 unicode |= (utf8[1] & 0x3F) << 6;
6 unicode |= (utf8[2] & 0x3F);
7 //unicode is ok!c++中可以直接以数组的方式操作每个字节,不知道mysql中能否做到?
但你还是用 #5楼 的方法吧。从现在实际情况来说,UTF16理论上等于UCS2
另外你的C++算法只是对0800 - FFFF范围的进行了转换,但对其它的0000 - 007F 0080 - 07FF 均未考虑处理。
4E2D56FD
show variables like 'char%';
character_set_client utf8
character_set_connection utf8
character_set_database latin1
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
show variables like 'char%';
character_set_client latin1
character_set_connection latin1
character_set_database latin1
character_set_filesystem binary
character_set_results latin1
character_set_server latin1
character_set_system utf8
UCS2是一种编码。比如面UTF8,或者 UTF16是一种编码格式,并规则了传输等方面的约定。 没什么可比性。完成是不同的两样东西。基于目前的UCS2可以认为UTF16的编码等于UCS2.