ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用して文字化けしたモバイル MAS テキスト メッセージを送信するための解決策
プロジェクトではモバイル エージェント MAS SMS インターフェイス開発を使用する必要がありますが、メーカーが提供する開発キットには PHP が含まれておらず、MYSQL を直接操作するために DB インターフェイスのみを使用できます。しかし、テキストメッセージを送信した後、携帯電話で受信したテキストメッセージは確かに文字化けしていました。しばらく考えた結果、文字コードの問題であると大まかに判断しました。この方向に沿って考え、実験を続け、ついにその理由が分かりました。
1. mas マシンの mysql データベースにログインします。
コマンドを使用します: show variables like "%char%";
mysql データベースの文字エンコーディングを確認します:
2. 次のように PHP を使用します。 mysql_connect('IP:3306' ,'user','pwd');
mysql_query("set names latin1;");
mysql_query("insert into api_mt_db01") value('".$mobiles ."','".$content."');", "GB2312","UTF-8"));
ここで、セット名 latin1 は
SETcharacter_set_client = latin1; と同等です
SET Character_set_results = latin1;
SET Character_set_connection = latin1;
3. プロジェクトの文字エンコーディングは UTF-8、実行環境は Windows 2008、文字エンコーディングは GB2312 です。 latin1 と utf8 の文字セットは互換性がありません。 、変換は不可逆であるため、 utf8 を gb2312 に変換し、次に GB2312 を latin1 に変換する必要があります
したがって、情報入力パス: app->os->client->connection->mysql、エンコード変換プロセス utf8 ->gb2312->ラテン1->ラテン1->ラテン1