
PHPのcURL関数を使って、POSTしているのですが、POSTの値をUTF-8からSJIS-winに変換して送信したところ、受け側で文字化けしてしまいます。
※ちなみに、ソースはUTF-8です。
ソース的には、ざっくり以下のような感じです。
$params = 'name=' . $name;
$params .= '&kana=' . mb_convert_kana($kana, 'k');
$params = mb_convert_encoding($params, 'SJIS-win', 'UTF-8');
・・・
$urlConnect = curl_init();
・・・
curl_setopt($urlConnect, CURLOPT_POSTFIELDS, $params);
$res = curl_exec($urlConnect);
受け側を見ると、
mb_detect_encoding($_POST['name'])
が、「UTF-8」となっていました。
解決するポイントでも構いませんので、ご指導お願い致します。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
mbstring.encoding_translation が On になっていませんか?
mbstring.http_input, mbstring.http_output 辺りも確認してみてください。
cf.) http://jp.php.net/manual/ja/mbstring.configurati …
今回とはあまり関係ないかもしれませんが、urlencode も通しておくことをお勧めします。
半角かなについては承知の上で使っているなら、問題ないと思います。
ご回答ありがとうございます。
まさに、mbstring.encoding_translation が On になっていました。
こちらを Off にすることで文字化けが解消しました。
どうもありがとうございました!
昨日ご回答頂きました方もどうもありがとうございました!
No.1
- 回答日時:
ざっくり調べたところ、UTF-8のBOMが悪さをしているようです。
対応としては、BOMを取り除くファンクションを作る、BOMの付加されないエディタを利用するといった方法がググれました。
早速回答ありがとうございます!
BOMを除くファンクションを作って試してみましたが、下記のやり方では状況は変わりませんでした。
BOMを調べると、「UTF-8形式のファイルを読み込んだ場合、ファイルの先頭データがBOMというのになっている場合がある。」と書いてあり、
今回のケースでは、どのタイミングで対応すれば良いのかがわかりませんでした。
かなり勘違いしているかもしれませんが、どのタイミングで対応すべきかご教授いただけると助かります。
// BOM除去ファンクション
function delete_bom($str) {
if (ord($str{0}) == 0xef && ord($str{1}) == 0xbb && ord($str{2}) == 0xbf) {
$str = substr($str, 3);
}
return $str;
}
//先程のソースに、BOM除去ファンクションを呼び出す
$params = mb_convert_encoding($this->delete_bom($params), 'SJIS-win', 'UTF-8');
何度もすみませんが、宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP phpのメールフォームの完了画面でメール受信のコードを書いています。 1 2023/05/31 11:39
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- PHP php ログイン 1 2022/11/01 00:24
- Excel(エクセル) 文字化け。メモ帳でUTF-8に変換後、エクセルへ貼り付けたいです。 3 2022/08/14 07:21
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- HTML・CSS <meta charset="utf-8"><!-- 文字化け防止ユニコード --> ?最近モバイル 1 2022/12/11 04:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字化け変換方法
-
vodafoneが言う事ききません
-
メール送信の設定について
-
文字コード変換
-
サーバー上でのphpMyAdminにつ...
-
メールのCCに複数のアドレスを...
-
sjisの文字化けとその対処方法...
-
PHPmailerでの添付ファイルの文...
-
mb_eregについて
-
VBAのコマンドボタンの文字列の...
-
文字の入力で横バー上段、中断...
-
ソースコードの1行が長いとき...
-
エクセルのCOUNTIFが正しくカウ...
-
Excel関数「COUNTIF」で”文字”...
-
メッセージボックスで1025文字...
-
ファイルから読み取った改行文...
-
エクセルVBAで改行のやりかた
-
2つ以上の連続する空白文字を除去
-
、"(ダブルクォーテーション)...
-
コンボボックスの項目中に改行を
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字化け変換方法
-
PHP cURLでPOSTした値が文字化...
-
PostgreSQLからCSV形式でエクス...
-
PHPでの文字列置換について
-
SQL Serverで文字コードUTF-8
-
文字変換
-
記号全削除のクラスを作成したい
-
mb_send_mail()関数のタイトル...
-
postの文字化け防止について
-
SJISで取得した半角カナをUTF-8...
-
UTF8メールがLotus Notesで文字...
-
mb_send_mailの2重投稿を防止し...
-
日本語混じりの文字列の語数制限
-
10文字以降は非表示にしたいん...
-
SJIS→UTF-8変換後の文字化けに...
-
multipart/form-dataの文字化け
-
メール送信プログラムで特定文...
-
mysql登録時の文字化け
-
Warning: mb_strpos(): Unknown...
-
mb_ereg_replaceに関して
おすすめ情報