我遇到了特殊字符的问题。我从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/答案 0 :(得分:1)
将字符集设置为utf8。
答案 1 :(得分:0)
好的,明白了!是如此愚蠢....我正在使用FPDF插入并在FPDF中正确显示特殊字符,我必须设置iconv('UTF-8',$ charset,$ _REQUEST ['City']); 对不起,再次感谢您的帮助!现在就像一个魅力