jas*_*son 5 mysql unicode escaping utf-8 string-literals
+--------------------------+--------------------------------------------------------+ | Variable_name | Value | +--------------------------+--------------------------------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/local/mysql-5.1.41-osx10.5-x86_64/share/charsets/ | +--------------------------+--------------------------------------------------------+ 8 rows in set (0.00 sec) mysql> select version(); +-----------+ | version() | +-----------+ | 5.1.41 | +-----------+ 1 row in set (0.00 sec) mysql> select char(0x00FC); +--------------+ | char(0x00FC) | +--------------+ | ? | +--------------+ 1 row in set (0.00 sec)
期待实际的utf8字符 - >"ü"而不是"?"尝试char(使用utf8的0x00FC),但没有去.
使用mysql版本5.1.41
一直在谷歌,在这上面找不到任何东西.MySQL文档简单地说,在mysql 5.0.14之后,预期多值输出的值大于255.
谢谢
您将UTF-8与Unicode混淆.
0x00FC是ü 的Unicode代码点:
mysql> select char(0x00FC using ucs2);
+----------------------+
| char(0x00FC using ucs2) |
+----------------------+
| ü |
+----------------------+
Run Code Online (Sandbox Code Playgroud)
在UTF-8编码中,0x00FC 由两个字节表示:
mysql> select char(0xC3BC using utf8);
+-------------------------+
| char(0xC3BC using utf8) |
+-------------------------+
| ü |
+-------------------------+
Run Code Online (Sandbox Code Playgroud)
UTF-8只是一种以二进制形式编码 Unicode字符的方法.这意味着节省空间,这就是为什么ASCII字符只占用一个字节,而iso-8859-1字符如ü只占用两个字节.其他一些字符需要三到四个字节,但它们不常见.
| 归档时间: |
|
| 查看次数: |
8268 次 |
| 最近记录: |