この記事は主に thinkphp3 クエリ mssql データベースの文字化けの解決策を紹介します。必要な友人は参考にしてください。
thinkphp が mssql データベースに文字化けを起こす理由は、ThinkPHP のデフォルトが UTF-8 であるためです。 、msmsql データベースは簡素化されています。中国語版には GB2312 エンコーディングが保存されています。
解決策:
1: ThinkPHP\Lib\Core の Db.class.php を開き、最後に
2 を追加します。 : Db.class.php は関数 select() を見つけ、$result = $this->query($sql); の後に $result=iconv2utf8($result) を追加します。それでOKです。
コードは次のとおりです。
public function iconv2utf8($Result) { $Row=array(); $key1=array_keys($Result); //取查询结果$Result的数组的键值 //print_r($key1); $key2=array_keys($Result[$key1[0]]); //取查询结果$Result的第一个数组($key1[0])的键值 //print_r($key2); for($i=0;$i<count($key1);$i++) { for($j=0;$j<count($key2);$j++) { //取查询结果编码改为UTF-8,并存入$Row,且$Row与$Result键与值一致 $Row[$key1[$i]][$key2[$j]]=iconv('gb2312','utf-8',$Result[$key1[$i]][$key2[$j]]); } } retrun $Row; }
以上がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。
関連する推奨事項:
thinkPHP3.2 のページング カスタム スタイルの実装についてメソッド
#thinkPHP の組み込み文字列インターセプト関数メソッドについて
##
以上がthinkphp3クエリmssqlデータベースの文字化け問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。