本帖最后由 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该成了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 中是用于提示信息的多语言转换的,所以也不大可能用中文做键

一旦程序文本中出现中文,那么这个程序文本在执行时就有可能出现乱码问题。所以应避免在程序文本中出现中文

这就是这个函数的精髓所在

谢谢大大的回答!!!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

strtoupper php 中文,strtoupper回导致中文乱码么相关推荐

  1. 深入理解Spring MVC Controller返回String类型导致中文乱码的问题。

    代码 在Controller层写下如下的测试代码: @GetMappingpublic String test() {return "这是一个中文句子";} 调试 在return返 ...

  2. PHP中文无法查询,php 中htmlentities导致中文无法查询问题

    在php中htmlspecialchars, 将特殊字元转成 HTML 格式,而htmlentities,将所有的字元都转成 HTML 字串 了,下面我来分别简单的介绍. htmlentities用法 ...

  3. java ajax json 乱码_java+ajax加载中文json串后出现乱码问题的解决办法

    码农公社  210.net.cn  210是何含义?10月24日是程序员节,1024 =210.210既 210 之意. 一.问题描述 使用zTree异步刷新父级菜单时,服务器返回中文乱码.项目中使用 ...

  4. Qt总结之十七:QByteArray类型里含中文的数据解析出现乱码

    一.背景 Qt解析TCP/UDP通信传来的xml时,中文有乱码 二.解决方法 //头文件添加 #include <QTextCodec>......QByteArray tmpQBA = ...

  5. keil复制代码乱码_win7系统下Keil复制中文注释到记事本出现乱码的解决方法

    Keil是软件编程的时候经常会用到的软件,但是有不少win7系统用户在复制Keil源程序中文注释到记事本的时候,发现出现了乱码的情况,遇到这样的问题该如何处理呢,现在为大家带来win7系统下Keil复 ...

  6. utf-8编码的中文注释 在 sourceinsight 显示乱码的解决方法---utf8 转gb2312插件

    utf-8编码的中文注释 在 sourceinsight 显示乱码的解决方法---utf8 转gb2312插件 参考文章: (1)utf-8编码的中文注释 在 sourceinsight 显示乱码的解 ...

  7. VC6里面的中文名字或者注释复制乱码解决

    只要你把输入法换成中文的输入法如搜狗,复制的编辑器输入法也调整为中文的,就会解决乱码复制问题,不知道原因,肯定是编码问题,不想深究.解决问题而已 转载于:https://www.cnblogs.com ...

  8. java压缩----使用sun JDK压缩--中文的文件名会是乱码

    经测试,文件名为中文的压缩完为乱码,测试过.txt 的文件类型,中文内容可以正常显示. 所以这种方案不可行. import java.io.File; import java.io.IOExcepti ...

  9. c# 后台传到前台乱码_ASP.NET关于前台脚本传递中文参数,后台获取乱码问题(乱码为方框,黑色方框等。。)...

    随笔,很菜的笔记 关于ASP.NET关于前台脚本传递中文参数,后台获取乱码问题(乱码为方框,黑色方框等..)这种乱码问题,其实有很多解决方案 一般的只要在脚本的参数钱加上escape或者encodeU ...

最新文章

  1. 现实世界充满了bug_为啥程序会有bug?
  2. struts启动过滤器异常_面试必备:网关异常了怎么办?如何做全局异常处理?
  3. 机器学习:从感知机模型体会随机梯度下降
  4. head first java原文_Head First Java
  5. 再谈子网划分方法与子网划分示例
  6. Linux Shell变量使用
  7. C#中如何生成矢量图
  8. 如何在5分钟内发现 SQL 语言中的数据血缘
  9. 施乐打印机驱动程序安装(CP315/318DW)
  10. 后盾网ThinkPHP微博项目
  11. 道德经和译文_道德经——老子道德经全文及译文
  12. nginx另类复杂的架构
  13. TPS5430DDAR高输出电流PWM转换器
  14. Oracle空闲超时时间设置
  15. document onload和window onload的区别?
  16. 一个开源的论坛系统AstalPathTalk
  17. A04.从零开始前后端react+flask - 用flask说hello
  18. H5混合开发二维码扫描教程之大圣众娱十人牛牛源码搭建架设
  19. 浙江工商大学计算机考研调剂,浙江工商大学2019年考研预调剂信息
  20. CSDN-markdown编辑器锚点链接添加方法

热门文章

  1. HEVC官方软件HM源代码简单分析-解码器TAppDecoder
  2. 学大伟业(杭州分校)数学联赛 GA3-1 国奥专题班
  3. 什么是等级保护?等保二级和三级的区别?
  4. Artoolkit初级研究手札(2008.12.9)
  5. android uefi 编译报错,【Android SDM660开机流程】- UEFI XBL 代码流程分析
  6. 每日一篇系列---CSS3实现下雨动效
  7. 基于springboot框架开发的作业提交与批改系统
  8. 渲染算法学习(四)-- Environment Lighting
  9. Android——App版本控制PHP
  10. Java中泛型的使用