ある取得した文字を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.1
- 回答日時:
mb_detect_encoding に渡している $strの内容はどんなものでしょうか?
対象を日本語に絞ったとして、
sjis, euc-jp, utf-8のいずれも ASCIIとは互換の部分がありますから
(厳密に言うとsjisはちょっと違いますが)、その互換部分だけが使われている
文字列を渡しても判定はASCIIになってしまうのではないでしょうか?
というかよっぽどの腐れブラウザでなければ、ページを記述しているのと
同じエンコーディングで投げてくれませんか?
ご回答ありがとうございます。
$strで渡している内容は、imap関数で取得した、mailbodyの内容です。
なので、ブラウザでエンコーディング云々という作業をすることができません。
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をべつにして、後ほど試してみようと思います
お探しの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ランキング
-
SJISで取得した半角カナをUTF-8...
-
phpのメールフォームの完了画面...
-
文字化け変換方法
-
廣のjis変換で文字化け
-
RSSを取得すると文字化けする。
-
Gmailへのメール送信で文字化け
-
SQL Serverで文字コードUTF-8
-
VBAのコマンドボタンの文字列の...
-
エスケープ文字の復帰(¥r)と...
-
メッセージボックスで1025文字...
-
ソースコードの1行が長いとき...
-
文字の入力で横バー上段、中断...
-
ファイルから読み取った改行文...
-
半角英数字のみを受け付ける入...
-
ダブルコーテーション(
-
C++でのCRLFについて
-
改行について
-
エクセルでの漢字、カタカナ、...
-
PHPで変数から1行目だけを取得...
-
エディットボックスの改行
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字化け変換方法
-
phpのメールフォームの完了画面...
-
SQL Serverで文字コードUTF-8
-
PHPmailerでの添付ファイルの文...
-
SJISで取得した半角カナをUTF-8...
-
mb_convert_encoding で 一部の...
-
SJIS→UTF-8変換後の文字化けに...
-
PHP cURLでPOSTした値が文字化...
-
phpMyAdmin内での文字化け
-
mb_ereg_replaceに関して
-
RSSを取得すると文字化けする。
-
PostgreSQLからCSV形式でエクス...
-
【PHP】mb_convert_encoding...
-
mb_regex_encodingでエンコード...
-
postの文字化け防止について
-
小さいひらがな(っ、ょ、ぃ、ゃ...
-
UTF8メールがLotus Notesで文字...
-
mail()で送信したメールのタイ...
-
php自動返信メール本文の一部の...
-
phpでの文字エンコード
おすすめ情報