ある取得した文字をUTF-8に変更したいと考えています。
もともと取得している文字のエンコードをmb_detect_encodingで確認したところ、ASCIIでした。どのような文字コードでも、可能な限り対応できるよう以下のスクリプトを作成してみました。
$str = mb_convert_encoding($str, "UTF-8", "mb_detect_encoding($str)");
しかしスクリプトの後に、print mb_detect_encoding($str)
で確認したところASCIIのままで、変更することができませんでした。
エラーなどはありません。
PHP初心者のため、原因やミスなどがわかりません
皆様のご指導をいただければと存じます。よろしくお願いいたします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
> $str = mb_convert_encoding($str, "UTF-8", "mb_detect_encoding($str)");
なんでmb_detect_encoding($str)が""で囲まれているのですか?
プログラムではなく文字列として認識されると思いますが。
mb_detect_encoding()は、どんな文字列でも確実に判断出来ると言う感じではありません。なので、例えばフォームで送信させるような場合は判断用の文字列をhiddenで入ると確実になります。
この回答への補足
$str = mb_convert_encoding($str, "UTF-8);
だけで試したところ、やはりASCIIのままでした。
IMAP関数で取得した情報で、MAILBODY、SUBJECTともに変更することができませんでした。メールのエンコードは変えられないのでしょうか?
ご回答ありがとうございます
mb_detect_encoding($str)を””で囲まなかった際にエラーを出してしまったため、””で囲みました。
mb_detect_encodingとmb_convert_encodingをべつにして、後ほど試してみようと思います
No.1
- 回答日時:
mb_detect_encoding に渡している $strの内容はどんなものでしょうか?
対象を日本語に絞ったとして、
sjis, euc-jp, utf-8のいずれも ASCIIとは互換の部分がありますから
(厳密に言うとsjisはちょっと違いますが)、その互換部分だけが使われている
文字列を渡しても判定はASCIIになってしまうのではないでしょうか?
というかよっぽどの腐れブラウザでなければ、ページを記述しているのと
同じエンコーディングで投げてくれませんか?
ご回答ありがとうございます。
$strで渡している内容は、imap関数で取得した、mailbodyの内容です。
なので、ブラウザでエンコーディング云々という作業をすることができません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
- PHP phpのメールフォームの完了画面でメール受信のコードを書いています。 1 2023/05/31 11:39
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- PHP phpの imap_search で漢字コード 1 2022/09/06 17:32
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- その他(プログラミング・Web制作) pythonのpandasのcsvの外部結合(outer_join)した際に列が想定とは異なる事象 1 2022/05/25 13:23
- C言語・C++・C# str[j++]の意味 2 2022/08/30 16:20
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpのメールフォームの完了画面...
-
全角スペースを半角スペースに変換
-
正規表現で数値から始まりYを1...
-
mb_ereg_replace での文字変換
-
文字の入力で横バー上段、中断...
-
エスケープ文字の復帰(¥r)と...
-
VBAのコマンドボタンの文字列の...
-
改行コードについて
-
Excel関数「COUNTIF」で”文字”...
-
改行が半角スペースに変わる
-
ソースコードの1行が長いとき...
-
SQLインジェンクション対応...
-
PHPで<a>タグ内からURLと文字を...
-
EOF、改行の矢印
-
PHPでHTMLメールを送信、文字化...
-
エクセル セルの中の改行を消...
-
なぜインターネットでは半角カ...
-
マクロで半角を全角に
-
Excel VBAからBeckyを起動して...
-
キャリッジリターンとラインフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字化け変換方法
-
phpのメールフォームの完了画面...
-
SQL Serverで文字コードUTF-8
-
PHPmailerでの添付ファイルの文...
-
SJISで取得した半角カナをUTF-8...
-
mb_convert_encoding で 一部の...
-
PHP cURLでPOSTした値が文字化...
-
SJIS→UTF-8変換後の文字化けに...
-
mb_ereg_replaceに関して
-
【PHP】mb_convert_encoding...
-
phpMyAdmin内での文字化け
-
mb_regex_encodingでエンコード...
-
PostgreSQLからCSV形式でエクス...
-
RSSを取得すると文字化けする。
-
postの文字化け防止について
-
UTF8メールがLotus Notesで文字...
-
小さいひらがな(っ、ょ、ぃ、ゃ...
-
phpでの文字エンコード
-
php自動返信メール本文の一部の...
-
mail()で送信したメールのタイ...
おすすめ情報