我有一个包含utf8编码的phpnuke网站的备份文件。现在我想在新的服务器上重新开启这个网站,但是phpnuke使用的是latin1编码。
我需要找到一种方法,能够使用这个utf-8编码的备份文件创建一个latin1编码的数据库。
我已经尝试了各种方法,如iconv、mysql替换、php替换等等。
我有一个包含utf8编码的phpnuke网站的备份文件。现在我想在新的服务器上重新开启这个网站,但是phpnuke使用的是latin1编码。
我需要找到一种方法,能够使用这个utf-8编码的备份文件创建一个latin1编码的数据库。
我已经尝试了各种方法,如iconv、mysql替换、php替换等等。
SET NAMES 'utf8';
语句。这将告诉MySQL即将接收的命令是UTF8编码的。它将使用当前表设置的任何字符集存储数据;在这种情况下,如果您的数据库使用latin1,则数据将以latin1存储。最后一件事是,latin1可用的字符比utf8少得多。对于除西欧语言之外的任何语言,您都会丢失数据。SET NAMES指示客户端将使用哪个字符集向服务器发送SQL语句。因此,SET NAMES 'cp1251'告诉服务器,“来自此客户端的未来传入消息采用字符集cp1251。”它还指定服务器应该用于将结果发送回客户端的字符集。(例如,如果您使用SELECT语句,则表示要使用哪个字符集用于列值。)
test
是latin1。第一个条目将正确显示(法语重音符号在latin1范围内),但是第二个韩文条目将显示为问号。SET NAMES 'utf8';
INSERT INTO TESTME(test) VALUES ('Bienvenue sur Wikipédia');
INSERT INTO TESTME(test) VALUES ('한국어 위키백과에 오신 것을 환영합니다!');