英語では期待通り動くのですが、日本語では期待通り動きません。
なぜですか。
form.html
<html>
<head>フォーム</head>
<body>
<form action="henkan.php" method="post">
文章<input type="text" name="UKETORI"><br>
<input type="submit" value="送信"><br>
</form>
</body>
</html>
henkan.php
<html>
<body>
<?php
$uketori=$_POST['UKETORI'];
$uketori=str_replace("です。","だよん。", $uketori);
print "$uketori";
?>
</body>
</html>
日本語を変換したい場合はエンコードとか必要なのでしょうか。
やり方がわかりません。宜しくお願いいたします。
No.3ベストアンサー
- 回答日時:
むむ。
php.iniの設定を同じにして私の手元の環境でやってみたところ、上手くいきますね。
PHP4、PHP5共に試しました。
送られてくるPOSTデータが実はSJISで無いとかかな?
POSTデータにmb_convert_encodingとか掛けてみてはどうでしょう?
=====試験コード
<?php
// ttp://***.jp/test.php?str=%22%83e%83X%83g%82%C5%82%B7%81B%82%D9%82%B0%22
// で、アクセス。
// URLエンコード部分は「テストです。ほげ」
$str = $_GET['str'];
echo "str_replace: " . str_replace("です。","だよん。", $str) . "<br>\n";
echo "<br>\n";
echo "mb_ereg_replace: " . mb_ereg_replace("です。","だよん。", $str) . "<br>\n";
echo "<br>\n";
?>
=====
=====試験結果
str_replace: テストだよん。ほげ
mb_ereg_replace: テストだよん。ほげ
=====
No.4
- 回答日時:
>mbstring.internal_encoding = EUC-JP
としているのですから、ソースファイルはeucで保存して下さいね。
でないとソース内記述文字列と、入力から得た文字列とを一致させることは出来ません。
>文字コードはシフトJISだと思います。エクリプスで作っております。
eclipseなら、ソース保存時の文字コードを選べるはずですけど。
>;mbstring.func_overload = 0
コメントを外してないので default 0 だったはず、つまりmb_関数が使えるようになってないと思う。
phpinfo()ではどのようになってますか?
No.2
- 回答日時:
> 期待通り動きません。
どんな風になってしまうのでしょうか。
php.iniの[mbstring]セクションの設定内容を全部教えてください。
また、form.htmlとhenkan.phpの文字コードも教えてください。
ありがとうございます。
文字が変換されずにそのまま表示されてしまいます。
です。という文字を入れたら変換されて だよん。 と表示させたいのですがそのまま です。 と表示されます。 英語だとちゃんと変換されました。
php.ini の内部です。
[mbstring]
; language for internal character representation.
mbstring.language = Japanese
; internal/script encoding.
; Some encoding cannot work as internal encoding.
; (e.g. SJIS, BIG5, ISO-2022-*)
mbstring.internal_encoding = EUC-JP
; http input encoding.
mbstring.http_input = auto
; http output encoding. mb_output_handler must be
; registered as output buffer to function
mbstring.http_output = SJIS
; enable automatic encoding translation according to
; mbstring.internal_encoding setting. Input chars are
; converted to internal encoding by setting this to On.
; Note: Do _not_ use automatic encoding translation for
; portable libs/applications.
mbstring.encoding_translation = On
; automatic encoding detection order.
; auto means
mbstring.detect_order = auto
; substitute_character used when character cannot be converted
; one from another
mbstring.substitute_character = none;
; overload(replace) single byte functions by mbstring functions.
; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(),
; etc. Possible values are 0,1,2,4 or combination of them.
; For example, 7 for overload everything.
; 0: No overload
; 1: Overload mail() function
; 2: Overload str*() functions
; 4: Overload ereg*() functions
;mbstring.func_overload = 0
文字コードはシフトJISだと思います。エクリプスで作っております。
宜しくお願い致します。
文字化けはしません。
No.1
- 回答日時:
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
とか入れてみたら如何でしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPでXMLを表示させたときの外...
-
透過PNGが透過されない!!
-
データベースへの持続的接続
-
onedrive にexcelファイルをア...
-
MySQLのdatetime型の月日0を削...
-
ラッパークラスって何ですか?
-
.phpと.incファイルの違いはな...
-
ファイルの行数取得
-
バッチを用いたフォルダの自動移動
-
Subversionのリポジトリの削除
-
リンク先を隠す方法はないでし...
-
FTPコマンドでディレクトリごと...
-
include先でのinclude元の変数...
-
PHPで新しいウインドウで開く命...
-
FORMで送信ボタンと戻るボタン...
-
PHPにて外部サイト内容が取得不...
-
ftpでアップロードが出来ない
-
JSPにてMySQLのBLOB型の画像の...
-
mysql複数レコードをまとめて削...
-
別ファイルの変数を呼び出した...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
日付と年月日を選択するコード...
-
複数の文字列をファイルに書き...
-
前後の全角スペースを削除する...
-
XAMPP1.7.1上でPHPを実行すると...
-
文字化けについて
-
PHP(smarty)についての質問(文...
-
ファイルをアップロードすると...
-
php エラー
-
条件によってmeta http-equiv="...
-
ウィンドウA⇒ウィンドウB⇒ウィ...
-
html内のphpスクリプトについて
-
Wordpressを利用したソート機能...
-
エラー Warning: Cannot modif...
-
phpの画面表示が真っ白です
-
<form action="bbs.php" method...
-
mb_convert_variablesで変換出...
-
phpでfopen()やfputs()が使えない
-
XMLパースエラー回避方法
-
header関数について
-
PEARのXML/Unserializer.phpが...
おすすめ情報