我正在寻找有关编码问题的帮助我已经在几天之内一直在努力。
我有一个Collation“latin1_swedish_ci”的数据库。当我查看单个条目时,它会显示混乱的文本
grieþos informçs
应该是
griežos informēs
好的......我尝试用php脚本将文本输出到浏览器并设置
<meta http-equiv="Content-Type" content="text/html; charset=windows-1257" />
现在......它正确显示数据(“griežosinformēs”)。我需要做的是将此数据转换为UTF-8,以便我可以使用
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
并正确显示所有内容。
我尝试使用Notepad2并使用编码windows-1257创建一个文件,然后从数据库中复制文本并保存....同样的问题。
尝试使用utf-8整理在该数据库中创建一个表并在那里插入数据......没有运气 - 只是显示?特殊字符应该在哪里。
任何帮助将不胜感激,
由于
答案 0 :(得分:1)
SELECT CAST(_cp1257_general_ci'test' AS CHAR CHARACTER SET utf8);
(test是列名)
这将为您提供正确字符集中的行。您应该使用UTF8然后SELECT CAST(....) FROM old_table INTO new_table
您可能还想将旧表的字符集更改为cp1257_general_ci而不是latin1_swedish_ci。
为了在不丢失数据的情况下执行此操作,首先将列的数据类型更改为blob
,然后使用cp1257_general_ci将其更改为varchar,然后最后第三次更改为utf8_unicode_ci(我建议先备份,以防万一。)
答案 1 :(得分:0)
在打开与数据库的连接后立即使用此查询,以便在每次加载页面时运行一次:
mysql_query('SET NAMES `utf8`');