php截取utf-8中文字符串乱码的解决方法

/**
* PHP截取UTF-8字符串,解决半字符问题。
* 英文、数字(半角)为1字节(8位),中文(全角)为2字节
* @return 取出的字符串, 当$len小于等于0时, 会返回整个字符串
* @param $str 源字符串
* $len 左边的子串的长度
*/
function utf_substr($str,$len){
    for($i=0;$i<$len;$i++){
        $temp_str=substr($str,0,1);
        if(ord($temp_str) > 127){
            if($i<$len){
                $new_str[]=substr($str,0,3);
                $str=substr($str,3);
            }
        }else{
            $new_str[]=substr($str,0,1);
            $str=substr($str,1);
        }
    }
    return join($new_str);
}
时间: 2024-11-08 23:52:36

php截取utf-8中文字符串乱码的解决方法的相关文章

ubuntu 中用vim打开txt等文件中文显示乱码的解决方法 &nbsp;

今晚用ubuntu 12.04 的vim编辑网页代码时,发现上面的中文显示乱码.这个html文件是我之前用gedit编辑的,在gedit里面显示正常,可是在vim下显示就是乱码了. 怎么解决ubuntu中vim显示中文乱码的问题呢? 首先,添加中文字符编码: sudo gedit /var/lib/locales/supported.d/local 在打开的文件中添加下面的中文字符集 zh_CN.GBK GBK zh_CN.GB2312 GB2312 zh_CN.GB18030 GB18030

ASP.NET中文显示乱码之解决方法

在config.web中设置globalization段 <configuration> <globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312"/></configuration> 可以是utf-8.gb2312等等. ASP.NET中文显示乱码之解决方法

php上传文件中文文件名乱码的解决方法

想必很多朋友在进行utf8编码的php开发上传功能的时候,都会遇到这样的一个问题,就是上传中文文件名的文件时,文件名会变成乱码,其实我们可以用iconv函数对文件名进行重新编码就解决问题了 可能会有不少朋友碰到一些问题就是上传文件时如果是英文倒好原文名不会有问题,如果是中文可能就会出现乱码了,今天我来给大家总结一下导致乱码php上传文件中文文件名乱码的原因与解决办法吧. 这几天在windows下安装了XAMPP,准备初步学习一下php的相关内容.这几天接触到了php上传文件,但是出现了一个郁闷问

php 文件中文文件名乱码的解决方法

想必很多朋友在进行utf8编码的php开发上传功能的时候,都会遇到这样的一个问题,就是上传中文文件名的文件时,文件名会变成乱码,其实我们可以用iconv函数对文件名进行重新编码就解决问题了 php文件使用的是UTF-8编码,如果没有猜错APACHE处理用的应该是GBK.想明白了这个问题,就去查找相关的教程了,索性找到了iconv这个函数. 函数原型:string iconv ( string in_charset, string out_charset, string str )使用例子:$co

linux命令行下中文文件名乱码的解决方法

首先查询支持的编码: locale -a 如果没有你需要的编码,例如zh_CN.utf8 root运行: #dpkg-reconfigure locales 选择你需要的编码,用空格选中,可多选.tab选择"OK",回车. 默认编码选择zh_CN.utf8 安装你所需要的编码. 方法一: 修改/etc/sysconfig/i18n 文件 把里面的LANG="en_US"改成 GB2312就可以了 要重启一下机器 不用重启的方法,直接 # LANG="GB2

命令行编译java源文件提示 “编码GBK的不可映射字符” 及输出的中文变为乱码的解决方法

使用命令行编译运行java代码,编译时出现 “编码GBK的不可映射字符” 的错误提示,并且需输出的中文全部变为乱码,此时有两种解决方法: (方法一) 在输入 javac 命令时,额外输入 -encoding utf-8, 例如:如果编译的源文件名为 Test.java ,那么编译时原先只需输入 javac Test.java,而现在需要输入 javac -encoding utf-8 Test.java (方法二) 使用 EditPlus 软件编写代码时,通过修改相关设置然后保存文件即可,具体操

PLSQL Developer中文显示乱码的解决方法

PLSQL Developer中文显示乱码是因为Oracle数据库所用的编码和PLSQL Developer所用的编码不同所导致的. 解决方法: 1. 先查询Oracle所用的编码 select userenv('language') from dual; 2. 设置PLSQL 的所用编码为第1步查询得到的编码格式 新建一个环境变量:  NLS_LANG 例如: 3. 重启 PLSQL 问题得到解决

PLSQLDeveloper中文显示乱码的解决方法

PLSQL客户端打开汉字显示乱码问题 PLSQL Developer中文显示乱码是因为Oracle数据库所用的编码和PLSQL Developer所用的编码不同所导致的. 解决方法: 1. 先查询Oracle所用的编码 select userenv('language') from dual; 2. 设置PLSQL 的所用编码为第1步查询得到的编码格式 新建一个环境变量: NLS_LANG  例如: 3. 重启 PLSQL 问题得到解决

win使用telnet到ubuntu下vim显示中文为乱码的解决方法~

1.几个路径: ubuntu: /etc/default/locale  相当于 centos:/etc/sysconfig/i18n vimrc的路径:① ~/.vimrc    ② /etc/vim/vimrc 2. 解决方法: ①添加语言支持 $sudo vim /var/lib/locales/supported.d/local# 添加下面的中文字符集zh_CN.GBK GBK zh_CN.GB2312 GB2312 zh_CN.GB18030 GB18030使其生效:$sudo dpk