ホームページ  >  記事  >  バックエンド開発  >  PHP を使用して文字化けしたモバイル MAS テキスト メッセージを送信するための解決策

PHP を使用して文字化けしたモバイル MAS テキスト メッセージを送信するための解決策

WBOY
WBOYオリジナル
2016-06-23 13:39:201056ブラウズ

プロジェクトではモバイル エージェント MAS SMS インターフェイス開発を使用する必要がありますが、メーカーが提供する開発キットには PHP が含まれておらず、MYSQL を直接操作するために DB インターフェイスのみを使用できます。しかし、テキストメッセージを送信した後、携帯電話で受信したテキストメッセージは確かに文字化けしていました。しばらく考えた結果、文字コードの問題であると大まかに判断しました。この方向に沿って考え、実験を続け、ついにその理由が分かりました。

1. mas マシンの mysql データベースにログインします。
コマンドを使用します: show variables like "%char%";
mysql データベースの文字エンコーディングを確認します:

2. 次のように PHP を使用します。 mysql_connect('IP:3306' ,'user','pwd');

mysql_select_db('mas');

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

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