PHP连接SQLserver中文字符编码报错的解决

时间:2022-06-01 14:12:11

PHP连接SQLserver,报错如下:

SQLSTATE[IMSSP]: An error occurred translating the query string to UTF-16: 在多字节的目标代码页中,没有此 Unicode 字符可以映射到的字符。

解决措施:

$str为原始utf-8编码中文字符,SQLserver2008为默认的gb2312编码。

$str=iconv ( "utf-8", "gb2312//IGNORE", $str );//第一次转换,不可省略,省略立即报错
$cmd='SELECT Id FROM information where DETAIL LIKE \'%'.$str.'%\';';//拼接
$long= iconv ( "utf-8", "gb2312//IGNORE", $cmd );//第二次转换,不可省略
$result = $this->extend->query($long);//正常运行未报错

至此解决。