検索
ホームページphp教程php手册phpを使用してsqlserver 2008に中国語を挿入するときに文字化けする解決策を共有する

phpを使用してsqlserver 2008に中国語を挿入するときに文字化けする解決策を共有する

Jun 13, 2016 am 11:59 AM
phpsqlserver中国語文字化け使用現れる共有方法入れる操作するデータ解決する

今日、php を使用してデータベースを操作したところ、SQL Server 2008 データベースに挿入された中国語フィールドが文字化けしていることがわかりました。以下に私の初期状況をいくつか示します。

開発環境は php5.3.3 Apache2.2.17 です。 SQL Server 2008、phpスクリプト ファイルのエンコーディングはutf-8、データベースに渡されるエンコーディングはGB2312です(SQL Serverのデフォルトの文字エンコーディングはこれかもしれませんが、私は公式に提供されているSQLSRVライブラリを使用しています)。 Microsoft によるデータベースへの接続 (追記: SQL Server 2005 以降、mssql.dll は接続でサポートされなくなりました)。 そのため、 sqlsrv_query($conn, "set names GB2312"); ステートメントを使用して、渡されるエンコード形式が設定されます。 SQL ステートメントは次のように記述されています。 insert into Opinion (content ) 値 ('aaa Chinese content');

この SQL ステートメントを実行すると、sqlsrv_errors( が失敗したことがわかります。 ) 関数を使用してエラー メッセージを出力し、次の結果を取得します:

コードをコピー コードは次のとおりです:


Array ( [0] => Array ( [0] => IMSSP [SQLSTATE] => IMSSP [1] => -46 [code] => -46 [2] => クエリの変換中にエラーが発生しました文字列を UTF-16 に変換します: �Cast � Unicode� . [メッセージ] => クエリ文字列を UTF-16 に変換する際にエラーが発生しました。 「クエリ文字列を UTF-16 に変換中にエラーが発生しました」から、文字エンコード変換の問題が原因であることがわかります。そこで、PHP の iconv 関数を使用して中国語のエンコード変換を強制し、SQL ステートメントを実行しました。コードは次のとおりです。



コードをコピー

コードは次のとおりです。 $string = iconv('utf-8', 'GB2312//IGNORE', 'aaa 中国語コンテンツ')

$sql = "意見 (コンテンツ) 値に挿入します。 ( $string)";

[code]
この時点で、別のエラーが報告されました。エラー メッセージは次のとおりです。
[code]
Array ( [0] =>配列 ( [0] => 42S22 [SQLSTATE] => ; 42S22 [1] => 207 [コード] => 207 [2] => [Microsoft][SQL Server Native Client 10.0][SQL Server] ���� 'aaa�������� ��Ч�� [メッセージ] => [Microsoft][SQL Server Native Client 10.0][SQL Server]���� 'aaa���� ����' ��Ч�� ) )


SQL ステートメントが間違って記述されているかどうかを確認するために、SQL ステートメントを Web ページに出力する手がかりはありません。出力結果は次のとおりです:



コードをコピー

コードは次のとおりです: 意見 (コンテンツ) 値に挿入(aaa��������)


咋一 問題が無いように見えましたが、実は後ろのカッコ内のパラメータを囲む必要があることに気づきました。引用符で囲まれているので (文字列であることを示します)、SQL ステートメントを再度変更しました。コードは次のとおりです。



コードをコピー

コードは次のとおりです。 $sql = "意見 (コンテンツ) 値に挿入 ( '".$string."') "; わかりやすくするために、

を拡大します。

SQL ステートメントが正常に実行され、データベースに保存された中国語が文字化けしないように、$string を一重引用符で囲みます。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール