strtoupper回导致中文乱码么
本帖最后由 molaifeng 于 2013-11-25 09:04:16 编辑

在部署项目时,遇到一个奇怪的问题,页面打开后,php脚本嵌套在html页面里的部分出现乱码,数据库是没问题的。后来定位,发现问题出现在这段代码上(tp框架)。


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



【后端开发】strtoupper来导致中文乱码么
后来,把那个strtoupper该成了mb_strtoupper

$name = mb_strtoupper($name, 'UTF-8');

这个项目部署在其他服务器时没出现这个问题啊,哪位大大解释下,谢谢!!!

分享到:


------解决方案--------------------
strtoupper、strtolower 在以前某些 php 版本中曾出现过对中文产生影响的问题
但早已经纠正过了

感觉你对这个函数的使用存在一些问题
离开这个函数原来的语境,这个函数只不过是设置一些键值对
和定义常量相似
比如
L('x', '这是个问题');
echo L('X'); // 这是个问题
L('x', '这不是个问题');
echo L('X'); //这不是个问题
echo L('x'); //这不是个问题

因此,在一般思维中,总是用简单的字符组合去对应复杂的字符组合(这就是缩略词)

这个函数在 TP 中是用于提示信息的多语言转换的,所以也不大可能用中文做键
一旦程序文本中出现中文,那么这个程序文本在执行时就有可能出现乱码问题。所以应避免在程序文本中出现中文
这就是这个函数的精髓所在
  • 微信
  • 分享
  • 【后端开发】strtoupper来导致中文乱码么
  • 相关标签:nbsp name strtoupper lang return
  • 本文原创发布ki4网,转载请注明出处,感谢您的尊重!
    • 上一篇: Smarty怎么将数组变量赋值给js
    • 下一篇: 请问 要求x包含y,x按y排序

    相关文章

    相关视频

    • PHP如何安装和配置?
    • php 和 python 语法(部分)上的区别
    • PHP 随机数 C扩展随机数
    • PHP查询附近的人及其距离的实现方法_php技巧
    • strtoupper来导致中文乱码么
    • DOM NamedNodeMap
    • C# 命名空间(Namespace)
    • getElementsByName() 方法
    • getElementsByTagName
    • 函数的名字-name属性

    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • 【后端开发】strtoupper来导致中文乱码么
  • 立即提交

    专题推荐

    • 【后端开发】strtoupper来导致中文乱码么独孤九贱-php全栈开发教程

      全栈 100W+

      主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门

    • 【后端开发】strtoupper来导致中文乱码么玉女心经-web前端开发教程

      入门 50W+

      主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门

    • 【后端开发】strtoupper来导致中文乱码么天龙八部-实战开发教程

      实战 80W+

      主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习

    作者信息 【后端开发】strtoupper来导致中文乱码么

    ki4网

    认证0级讲师

    最近文章
    发布技术文章
    • 最新文章
    • 热门排行

      【后端开发】strtoupper来导致中文乱码么

    • php利用mkdir()函数创建多级目录
    • PHP最强大的随机字符串生成函数
    • PHP中 stripslashes() 函数 和 addslashes() 函数
    • php递归经典案例
    • PHP二维数组按照指定的字段排序的函数
    • 聚合数据短信API服务接口PHP请求示例(附源码)
    • PHP自动加载机制介绍——spl_autoload_register()函数,php类自动加载
    • php判断从数据库查出的二维数组是否有重复值

      【后端开发】strtoupper来导致中文乱码么

    • 最全最详细的PHP面试题(带有答案)
    • VPN是什么
    • PHP四大主流框架的优缺点总结
    • 详解PHPMyadmin的配置
    • php是什么文件?如何打开?四种打开php格式文件方法(图)
    • php如何解决中文乱码问题?
    • PHPstorm破解方法
    • PHP中使用CURL之php curl详细解析和常见大坑
    推荐视频教程
  • 【后端开发】strtoupper来导致中文乱码么javascript初级视频教程
  • 【后端开发】strtoupper来导致中文乱码么jquery 基础视频教程
  • 视频教程分类
    • php视频教程
    • html视频教程
    • css视频教程
    • JS视频教程
    • jQuery视频教程
    • mysql视频教程
    • Linux视频教程
    • Python视频教程