我有一个带有UTF-8字节字符的latin1_swedish_ci数据库,显示为%C5%A1,%C4%8D,...
我已经将数据库和表从latin1转换为utf8,但我仍然需要修复UTF-8字节字符。
ALTER DATABASE databasename CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
MySQL默认字符集:
SHOW VARIABLES LIKE 'char%'
character_set_client utf8mb4
character_set_connection utf8mb4
character_set_database utf8mb4
character_set_filesystem binary
character_set_results utf8mb4
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
我尝试了MySQL功能但没有成功:
convert(cast(convert(name using latin1) as binary) using utf8)
我真的需要帮助!谢谢。
答案 0 :(得分:1)
您使用的是PHP吗?是否致电urlencode()
?唐'吨。仅将该函数用于构建url字符串。
让我们仔细检查表中的。 SELECT HEX(...) ...
- pisarniška
应成为(为清晰起见而添加空格):
70697361726E69 C5A1 6B61 if correctly stored as utf8mb4 (or utf8)
70697361726E69 254335 254131 6B61 if urlencoded first