PHP/MySQL特殊字符问题

PHP/MySQL特殊字符问题,php,mysql,special-characters,collation,Php,Mysql,Special Characters,Collation,我面临一个特殊角色的问题。我从MSSQL中的数据库获取信息,该数据库在php中返回一个值,该值可能包含特殊字符,如“áéöü”等。在我的示例中,我将使用城市名称Zürich,当我尝试将此信息插入MySQL数据库时,我得到以下错误: “不正确的字符串值:'\xFCrich…'用于列…” 因此,我已经完成了以下操作,但仍然显示相同的错误消息: $arrSearch = array('\xE4','\xF6','\xFC','\xC4','\xD6','\xDC','\xDF'); $arrRepla

我面临一个特殊角色的问题。我从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�富(矩形块)

我也尝试了hex2bin(),但我只得到了一个白色页面,没有向数据库中插入任何内容。仅供参考,数据库排序规则在utf8mb4_general_ci中,setlocale(LC_ALL,'en_en')在php文件中设置。所有php文件都编码成UTF8,聊天集设置如下:mysql\u set\u charset('utf8mb4',$link)

我必须承认,我有点迷路了。有人知道如何解决这个问题吗? 谢谢


编辑:托管此应用程序的服务器在2008R2/IIs 7.5下运行,我已通过Microsoft找到此KB。我将尝试修补程序和注册表修改,但它没有工作

将字符集设置为utf8。

好的,明白了!他太蠢了。。。。我将FPDF用于插入,为了在FPDF中正确显示特殊字符,我必须设置一个iconv('UTF-8',$charset,$_REQUEST['City');
抱歉,再次感谢您的帮助!现在就像一个符咒一样工作

您是否尝试过不替换字符并将UTF8元标记放在视图侧?您不能将数据库的排序规则更改为UTF8 unicode吗?将排序规则更改为UTF-8,这些问题就会消失
u
\FC
对于MySQL是一样的,这就是为什么你的修复程序不起作用。我已经将排序规则更改为utf8_general_ci,保留它来自MsSQL数据库(Zürich),添加了“MySQL_set_字符集('utf8',$link)”,问题仍然是一样的。我错过了什么吗?尝试添加utf8 php头。标题('Content-Type:text/html;charset=utf-8');尝试更改php文件编码。我修复了它,但仍然是一样的。还有其他建议吗?:)您可以更改数据库的拉丁1_general_ci编码吗?