脚本宝典收集整理的这篇文章主要介绍了php – 为什么在将MS SQL数据转换为MYSQL时会出现无效字符?,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
MSsql Server设置为“sql_latin1_General_CP1_CI_AS”的排序规则,并且有问题的数据存储在“nchar”类型的列中.
我的PHP网页使用
<Meta http-equiv="content-tyPE" content="text/htML; charset=utf-8">
我正在使用sqlsrv PHP扩展从MSsql数据库中提取数据.
$sql = 'SELECT * From [tArticle] WHERE [ID] = 6429'; $stmt = &sqlsrv_query($dbHandler,$sql); while ($row = sqlsrv_fetch_object($stmt)) { // examples of what I've tried simply to display the data echo $row->Text1; echo utf8_encode($row->Text1); echo iconv("ISO-8859-1","UTF-8",$row->Text1); echo iconv("ISO-8859-1","UTF-8//TRANSLIT",$row->Text1); }
暂时忘记将数据插入MysqL数据库.我无法在PHP页面中正确显示字符串.从我的列表中的示例:
echo $row->Text1
由我的浏览器呈现为一个明显无效的字符:“Lucy s”
之后的所有示例都呈现为空白:“Lucys”
它看起来像是一个字符集不匹配的问题,但我怎样才能从MS sql数据库中正确显示这些数据(不改变我的网页编码)?如果我能解决这个问题,我可能会把它存储在MysqL数据库部分中.
但它们可能编码在一些拉丁语或“西方”Windows code page中.所以我会尝试iconv(“CP1252”,“UTF-8”,$row-> Text1);,例如.
另一种方法是运行显式设置已知编码的SQL查询.例如,根据Windows Collation Name (Transact-SQL)文档,此查询将使用代码页1252对字段Text1进行编码:SELECT Text1 COLLATE sql_latin1_General_CP1_CI_AS From ….
以上是脚本宝典为你收集整理的php – 为什么在将MS SQL数据转换为MYSQL时会出现无效字符?全部内容,希望文章能够帮你解决php – 为什么在将MS SQL数据转换为MYSQL时会出现无效字符?所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。