2016-07-29 160 views
0

我有问题,转换从latin1utf8
我有2个数据库,首先是在latin1秒在utf8LATIN1到UTF8转换问题

实施例:
select * from latin1_db给出
"SPÓŁDZIELNIA PRODUCENTÓW TRZODY ODRODZENIE BOBROWNIKI WĄGROWIEC"

但我插入到utf8分贝它变成
"SPÓ?DZIELNIA PRODUCENTÓW TRZODY ODRODZENIEBOBROWNIKI W?GROWIEC"

如何使这两个字符串将是相同的

我使用

$str=utf8_encode($str); 
$str=Encoding::fixUTF8($str); 

iconv 

,但效果不好。

+0

请参阅http://stackoverflow.com/questions/38363566/trouble-with-utf8-characters-what-i-see-is-not-what-i-store并寻找“问号”。按照建议提供HEX。不要使用任何“修复”程序;这只会使问题复杂化。 –

回答

0

你必须与

SET NAMES utf-8 

设置数据库连接的编码作为一个SQL查询。您不提供代码与数据库请求,所以我不能更新您的代码来说明我的意思。对于PDO,它应该是

$pdo = new PDO(
    'mysql:host=yourdbhost;dbname=yourdbname', 
    'username', 
    'password', 
    array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8") 
); 
+0

它给“SPÓ?DZIELNIAPRODUCENTÓWTRZODY ODRODZENIE BOBROWNIKI W?GROWIEC”它不改变字母ł或± – binar