今掲示板を作っています。
sjisでは特定の文字(表・予・申・能など)が文字化けする問題がありますが、簡単に対処できる方法をさがしています。
一番やりたい方法が、str_replace()関数を使って、例えば「表」を「\表」と書き換える関数を作って、何か書き込むときにはテキストデータをその関数にかけてしのぐというものです。しかし、実際に下のようにやってみると、PHPエラーが発生します。
$textdate = str_replace("表","\表",$textdate);
ちなみに、この文字が「表」以外の文字化けをおこさない文字ならばこのエラーは発生しません。
文字コードレベル(16進数レベル)で置換しなければならないのでしょうか?
No.1ベストアンサー
- 回答日時:
str_replaceは、日本語には正しく対応しないと聞き、入れ替えでしたた、mb_ereg_repalce の方が良いかと思います。
未確認ですが、"\表" → "\\表" 、または '\表' と思います。
また、チェックする時だけeuc-jpに変換して、後でshift_jisに戻すというのがあります。
$textdate = mb_convert_encoding( $textdate, 'EUC-JP', 'SJIS' );
$textdateの処理
$textdate = mb_convert_encoding( $textdate, 'SJIS', 'EUC-JP' );
ただ、sjisの文字化けに関しては、最初から全てshift_jisではなくeuc-jpで記すとこれらが解決いたします。
それぞれのファイルのエンコーディングをEUC、htmlのmetaのcharsetをECU-JPに変えるだけで済みますが。
回答ありがとうございます。
まさかその手があったとは思いもよりませんでした。
さっそくチェック時だけeuc-jpに変換の方法を試してみたいと思います。
No.3
- 回答日時:
No.2
- 回答日時:
PHP のことは全然知らないので,シフトJISという点についてだけコメントします.
>「表」を「\表」と書き換える
それをやるなら,「\表」じゃなくて「表\」です.
「表」= 0x95,0x5C(='\') なので,
「\表」= 0x5C('\'),0x95,0x5C('\')
「表\」= 0x95,0x5C('\'),0x5C('\')
Shift_JIS (Wikipedia)
http://ja.wikipedia.org/wiki/Shift_JIS#2.E3.83.9 …
→ 2バイト目に0x5Cを持つ文字(いわゆる「ダメ文字」)一覧
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 政治 私の発明した「二階建て漢字」は使えるでしょうか? 3 2023/02/08 16:40
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- その他(ソフトウェア) ソースネクストアプリをインストールし、製品登録で半角英数字が入力できない 5 2022/07/03 22:44
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/15 08:30
- Excel(エクセル) Excelの操作方法を教えてください!頭文字2~8文字で特定の値に返す方法 8 2022/07/14 11:26
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/06/15 14:11
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/06/23 15:02
関連するカテゴリから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での文字エンコード
おすすめ情報