hct*_*pcu 5 mysql character-encoding
我在utf8中有一个phpnuke站点的转储文件。我正在尝试在新服务器上重新打开此站点。但是 nuke 使用 latin1。我需要一种使用这个 utf-8 转储文件创建 latin1 数据库的方法。我尝试了我能想到的一切。iconv, mysql 替换, php 替换...
在转储的开头添加该SET NAMES \'utf8\';语句。\n这将向 MySQL 表明它将接收的命令采用 UTF8 格式。\n它将以表当前设置的任何字符集存储数据;在这种情况下,如果您的数据库位于 latin1 中,则数据将存储在 latin1 中。
来自http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html:
\n\n\n\n\nSET NAMES 指示客户端将使用什么字符集向服务器发送 SQL 语句。因此,SET NAMES \'cp1251\' 告诉服务器,\xe2\x80\x9c 未来来自该客户端的传入消息采用字符集 cp1251。\xe2\x80\x9d 它还指定服务器应用于发送结果的字符集返回给客户端。(例如,如果使用 SELECT 语句,它指示列值使用什么字符集。)
\n
最后一件事是 latin1 的可用字符比 utf8 少得多。对于西欧语言以外的任何语言,您都会丢失数据。
\n\n例如,假设列test是 latin1。第一个条目将正确显示(法语口音位于 latin1 内);但是韩语的第二个条目将显示为问号。
SET NAMES \'utf8\';\nINSERT INTO TESTME(test) VALUES (\'Bienvenue sur Wikip\xc3\xa9dia\');\nINSERT INTO TESTME(test) VALUES (\'\xed\x95\x9c\xea\xb5\xad\xec\x96\xb4 \xec\x9c\x84\xed\x82\xa4\xeb\xb0\xb1\xea\xb3\xbc\xec\x97\x90 \xec\x98\xa4\xec\x8b\xa0 \xea\xb2\x83\xec\x9d\x84 \xed\x99\x98\xec\x98\x81\xed\x95\xa9\xeb\x8b\x88\xeb\x8b\xa4!\');\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
2011 次 |
| 最近记录: |