PHP5.2.4 使用者です。(レンタルサーバー)
例えば、サーバー及び記述の文字コードがEUC-JPだとして、
$str = "~";
$str = mb_convert_encoding($str , 'UTF-8', 'EUC-JP');
とすると "?" に化けてしまいます。
調べたところ、マルチバイト文字の
~ ¬ ∥ - ¢ £ \
は対応するコードがないから化けるとか…
"~" はよく使う文字ですし、そんな簡単に化けられては困るんですが…
プロの方はこういうのどう処理してるのでしょう。
お詳しい方、よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
euc-jp じゃなくてeucjp-win にしてみてください。
[php] mb_convert_encoding と UTF-8 の誤変換問題 ( しゃいん☆のブログ| 名古屋市 Webシステム開発 サーバ構築 ネットワーク構築 株式会社コネクティボ )
http://shain.blog.conextivo.com/2007/07/php_mb_c …
根っこが深い問題なんです。実は。
404 Blog Not Found:Encode - 規格のバグまでは直せません
http://blog.livedoor.jp/dankogai/archives/504887 …
この回答への補足
なるほど!eucjp-win で解決しました。
↓ウィキペディアによると規格作りの段階で勘違いがおきているようですね…
http://ja.wikipedia.org/wiki/%E6%B3%A2%E3%83%80% …
今後は"EUC-JP"と記述すべき所は全て "EUCJP-win" でいこうかなと思いますがどうでしょうね?
"EUCJP-win" を使ってはいけない場合ってあるんでしょうかね?
ありがとうございました。
No.3
- 回答日時:
処理系にWindowsが混入してるとそういう現象が起こるらしいです
ね。Windowsが波ダッシュと全角チルダを混同してることと、euc-jp
には全角チルダなんて無いことが諸悪の根源とか。
どこかで全角チルダを波ダッシュに変換してやる必要があるわけで
すが、適切な場所でeuc-jpのかわりにeuc-jp-winと唱えるのが効
くって噂です。
この回答への補足
ありがとうございます。
>> 処理系にWindowsが混入
このWindowsとは次のどの段階なのでしょうかね?
1)サーバーのOS
2)プログラマーのパソコンのOS(私の場合Win-XP)
3)サイト訪問者のパソコンのOS
契約のサーバーはUNIX系なので 1) はないとして、 2) と 3) はどっちなのでしょうか。
もし 2) なら、私のPCがMacなら EUCJP-win はいらないことになりますし…
3) なら EUCJP-win は常時必須でしょうし…
No.1
- 回答日時:
$str = mb_convert_encoding( $str, 'EUC-JP', 'ASCII,JIS,UTF-8,EUC-JP,SJIS' );
ではどうですか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- その他(プログラミング・Web制作) 文字コード及びフォントに関する次の記述を読み,適切なものをすべて選べ。 ASCIIとは,英数字だけを 4 2023/01/11 19:10
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- PHP phpのメールフォームの完了画面でメール受信のコードを書いています。 1 2023/05/31 11:39
- C言語・C++・C# sprintf()の使い方について 1 2022/08/17 16:16
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
- C言語・C++・C# str[j++]の意味 2 2022/08/30 16:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
RSSを取得すると文字化けする。
-
phpのメールフォームの完了画面...
-
廣のjis変換で文字化け
-
VBAのコマンドボタンの文字列の...
-
エスケープ文字の復帰(¥r)と...
-
文字の入力で横バー上段、中断...
-
JAVA System.out.println の ...
-
ソースコードの1行が長いとき...
-
jsp 改行コードで改行させて表...
-
LaTeX: captionの中で改行した...
-
全角括弧と全角読点の間隔を狭...
-
改行について
-
fgetws関数で読み込んだUNICODE...
-
emacsの自動改行+インデントに...
-
2バイトローマ数字小文字につ...
-
php 正規表現で、\\マークを取...
-
文字列の置換をCStringで(C++)
-
テキストボックス行の桁数を制...
-
phpでhtmlソースを解析し、文字...
-
改行を読み飛ばす
マンスリーランキングこのカテゴリの人気マンスリー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()で送信したメールのタイ...
おすすめ情報