ホームページ >バックエンド開発 >PHPチュートリアル >strtoupperは中国語文字化けを引き起こすのでしょうか?

strtoupperは中国語文字化けを引き起こすのでしょうか?

WBOY
WBOYオリジナル
2016-06-13 12:32:351322ブラウズ

strtoupper は中国語の文字化けを引き起こしますか?

この投稿は molaifeng によって最終編集されました: 2013-11-25 09:04:16 プロジェクトをデプロイするときに、ページを開いた後、HTML ページにネストされた php スクリプトの部分が文字化けするという奇妙な問題が発生しました。データベースは正常でした。後でそれを見つけたところ、このコード (tp フレームワーク) で問題が発生していることがわかりました。

<br />
/**<br />
 * 获取和设置语言定义(不区分大小写)<br />
 * @param string|array $name 语言变量<br />
 * @param string $value 语言值<br />
 * @return mixed<br />
 */<br />
function L($name=null, $value=null) {<br />
    static $_lang = array();<br />
    // 空参数返回所有定义<br />
    if (empty($name))<br />
        return $_lang;<br />
    // 判断语言获取(或设置)<br />
    // 若不存在,直接返回全大写$name<br />
    if (is_string($name)) {<br />
        echo $name, ' ';<br />
        $name = strtoupper($name);echo $name;<br />
        if (is_null($value))<br />
            return isset($_lang[$name]) ? $_lang[$name] : $name;<br />
        $_lang[$name] = $value; // 语言定义<br />
        return;<br />
    }<br />
    // 批量定义<br />
    if (is_array($name))<br />
        $_lang = array_merge($_lang, array_change_key_case($name, CASE_UPPER));<br />
    return;<br />
}<br />
<br />



その後、strtoupper は mb_strtoupper
に変更されました。
<br />
$name = mb_strtoupper($name, 'UTF-8');<br />

このプロジェクトが他のサーバーにデプロイされたときは、この問題は発生しませんでした。どなたか説明していただけませんか。 ! !
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。