PHP / MySQL特殊字符问题

时间:2014-02-27 15:44:02

标签: php mysql special-characters collation

我遇到了特殊字符的问题。我从MSSQL中的数据库中获取信息,该数据库在php中返回一个值,该值可能包含特殊字符,如“àéöü”等。在我的示例中,我将使用Zürich的城市名称,当我尝试插入此信息时进入MySQL数据库,我收到以下错误:

“字符串值不正确:'\ xFCrich ...'代表列...”

所以,我已经完成了以下操作,但它仍然显示相同的错误消息:

$arrSearch = array('\xE4','\xF6','\xFC','\xC4','\xD6','\xDC','\xDF');
$arrReplace = array('ä','ö','ü','Ä','Ö','Ü','ß',);
$City=str_replace($arrSearch, $arrReplace, $City);

如果我回复$ City,我会得到以下信息:     Z rich(矩形块)

我也试过了hex2bin(),但我得到一个白页,没有任何内容插入到数据库中。仅供参考,DB整理是在utf8mb4_general_ci中,并且在php文件中设置了setlocale(LC_ALL,'en_EN')。所有php文件都编码为UTF8,chatset设置如下:mysql_set_charset('utf8mb4',$ link);

我必须承认,我有点失落。有没有人知道如何解决这个问题? 感谢。

编辑:托管此应用程序的服务器在2008R2 / IIs 7.5下运行,我在微软发现了这个KB。我将尝试修补程序和注册表修改但它没有工作。 http://support.microsoft.com/kb/2277918/

2 个答案:

答案 0 :(得分:1)

将字符集设置为utf8。

答案 1 :(得分:0)

好的,明白了!是如此愚蠢....我正在使用FPDF插入并在FPDF中正确显示特殊字符,我必须设置iconv('UTF-8',$ charset,$ _REQUEST ['City']); 对不起,再次感谢您的帮助!现在就像一个魅力