[PHP-users 27715] 多言語処理(日中韓など)
keijiro
icm @ pepota.com
2005年 12月 1日 (木) 15:02:35 JST
こんにちは。
keijiroです。
CentOS4
php-4.3.9-3.9(rpm)
を使用しています。
mb関係は、以下のようにセットしてあり、
こちらは変更できません。
[mbstring]
mbstring.language = Japanese
mbstring.detect_order = NULL
mbstring.http_input = auto
mbstring.http_output = EUC-JP
mbstring.internal_encoding = EUC-JP
mbstring.script_encoding = NULL
mbstring.substitute_character = NULL
mbstring.func_overload = "0"
mbstring.encoding_translation = On
--------
スクリプトをUTF-8(BOM無し)で以下のように書きます。
--------
<?php
ini_set("default_charset","UTF-8")."<br>";
ini_set("mbstring.language","Japanese")."<br>";
ini_set("mbstring.internal_encoding","UTF-8")."<br>";
ini_set("mbstring.encoding_translation","On")."<br>";
ini_set("mbstring.http_input","auto")."<br>";
ini_set("mbstring.http_output","pass")."<br>";
print "1:".$_POST['test']."<br>";
print "2:".mb_convert_encoding($_POST['test'],"UTF-8","auto")."<br>";
?>
<form action="./index.php" method="post">
<input type="text" name="test">
<input type="submit">
</form>
--------
日本語を入力すると、2:ではうまく表示されます。
※そもそも、ini_setしているのに、何で1:ではうまく表示されないのか謎です。
ini_setを使わずmb_internal_encoding("UTF-8")などでも同様の結果です。
mb_detect_encodingで調べると、EUC-JPでした。
問題は、ここで、韓国語を入力すると、文字化けします。
多言語入力に対応させたいのですが、何か良い方法はありますでしょうか?
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
keijiro
icm @ pepota.com
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
PHP-users メーリングリストの案内