Heim >Backend-Entwicklung >PHP-Tutorial > strtoupper来导致中文乱码么

strtoupper来导致中文乱码么

WBOY
WBOYOriginal
2016-06-13 12:32:351322Durchsuche

strtoupper回导致中文乱码么

本帖最后由 molaifeng 于 2013-11-25 09:04:16 编辑     在部署项目时,遇到一个奇怪的问题,页面打开后,php脚本嵌套在html页面里的部分出现乱码,数据库是没问题的。后来定位,发现问题出现在这段代码上(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 />

这个项目部署在其他服务器时没出现这个问题啊,哪位大大解释下,谢谢!!!
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn