+--------------------------+--------------------------------------------------------+ | 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 символа-> "Б" вместо"?" испытанного символа (0x00FC использующий utf8) также, но никакие не идут.
Используя mysql версию 5.1.41
Со всех сторон Google, ничего не может найти на этом. В документах MySQL просто говорится, что многобайтовый вывод ожидается на значениях, больше, чем 255, после mysql версия 5.0.14.
Спасибо
Вы путаете UTF-8 с Unicode.
0x00FC - это кодовая точка Unicode для ü:
mysql> select char(0x00FC using ucs2);
+----------------------+
| char(0x00FC using ucs2) |
+----------------------+
| ü |
+----------------------+
В кодировке UTF-8 , 0x00FC представлен двумя байтами :
mysql> select char(0xC3BC using utf8);
+-------------------------+
| char(0xC3BC using utf8) |
+-------------------------+
| ü |
+-------------------------+
UTF -8 - это просто способ кодирования символов Unicode в двоичной форме. Он предназначен для экономии места, поэтому символы ASCII занимают только один байт, а символы iso-8859-1, такие как ü, занимают только два байта. Некоторые другие символы занимают три или четыре байта, но они встречаются гораздо реже.