[PHP-users 27716] Re: 多言語処理(日中韓など)

okuyama@workgroup okuyama @ workgroup.jp
2005年 12月 1日 (木) 15:31:51 JST


おく@Workgroupです。

mbstring.language
mbstring.encoding_translation
は、ini_setで変更できません。

PHP_INI_PERDIRですので、.htaccessでの変更までは、可能です。

mbstring.encoding_translationをOffで問題なく表示できるようです。

autoで、自動認識に失敗する場合は、認識順を指定するとうまくいきます。
$enc = mb_detect_encoding($str, "JIS,EUC-JP,SJIS,UTF-8");
if ($enc != "UTF-8") {
	$str = mb_convert_encoding($str, "UTF-8", $enc);
}



.    ・ . +  : ゜.  ‥   ゜. .
 ‥   ゜. .  .  ・.    ・ . +
  /  +   ゜.     ・ . +  :
★               from: Atsuji Okuyama
  彡彡ミ
 )∂∂b        mail:  okuyama @ workgroup.jp
 ( ー  人__     tel: 050-3599-1875
   ̄/)/   |     tel: 050-7567-2016
   |` ̄    "\  au : 090-3545-9553


> -----Original Message-----
> From: php-users-bounces @ php.gr.jp
> [mailto:php-users-bounces @ php.gr.jp] On Behalf Of keijiro
> Sent: Thursday, December 01, 2005 3:03 PM
> To: PHP-users ML
> Subject: [PHP-users 27715] 多言語処理(日中韓など)
>
> こんにちは。
> 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 mailing list  PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3
>
>



PHP-users メーリングリストの案内