php 中文和编码判断代码


Posted in PHP onMay 16, 2010

编码范围1. GBK (GB2312/GB18030)
\x00-\xff GBK双字节编码范围
\x20-\x7f ASCII
\xa1-\xff 中文
\x80-\xff 中文
2. UTF-8 (Unicode)
\u4e00-\u9fa5 (中文)
\x3130-\x318F (韩文
\xAC00-\xD7A3 (韩文)
\u0800-\u4e00 (日文)
ps: 韩文是大于[\u9fa5]的字符
正则例子:
preg_replace(”/([\x80-\xff])/”,”",$str);
preg_replace(”/([u4e00-u9fa5])/”,”",$str);
二、代码例子

//判断内容里有没有中文-GBK (PHP) 
function check_is_chinese($s){ 
return preg_match('/[\x80-\xff]./', $s); 
} 
//获取字符串长度-GBK (PHP) 
function gb_strlen($str){ 
$count = 0; 
for($i=0; $i<strlen($str); $i++){ 
$s = substr($str, $i, 1); 
if (preg_match("/[\x80-\xff]/", $s)) ++$i; 
++$count; 
} 
return $count; 
} 
//截取字符串字串-GBK (PHP) 
function gb_substr($str, $len){ 
$count = 0; 
for($i=0; $i<strlen($str); $i++){ 
if($count == $len) break; 
if(preg_match("/[\x80-\xff]/", substr($str, $i, 1))) ++$i; 
++$count; 
} 
return substr($str, 0, $i); 
} 
//统计字符串长度-UTF8 (PHP) 
function utf8_strlen($str) { 
$count = 0; 
for($i = 0; $i < strlen($str); $i++){ 
$value = ord($str[$i]); 
if($value > 127) { 
$count++; 
if($value >= 192 && $value <= 223) $i++; 
elseif($value >= 224 && $value <= 239) $i = $i + 2; 
elseif($value >= 240 && $value <= 247) $i = $i + 3; 
else die('Not a UTF-8 compatible string'); 
} 
$count++; 
} 
return $count; 
} 
//截取字符串-UTF8(PHP) 
function utf8_substr($str,$position,$length){ 
$start_position = strlen($str); 
$start_byte = 0; 
$end_position = strlen($str); 
$count = 0; 
for($i = 0; $i < strlen($str); $i++){ 
if($count >= $position && $start_position > $i){ 
$start_position = $i; 
$start_byte = $count; 
} 
if(($count-$start_byte)>=$length) { 
$end_position = $i; 
break; 
} 
$value = ord($str[$i]); 
if($value > 127){ 
$count++; 
if($value >= 192 && $value <= 223) $i++; 
elseif($value >= 224 && $value <= 239) $i = $i + 2; 
elseif($value >= 240 && $value <= 247) $i = $i + 3; 
else die('Not a UTF-8 compatible string'); 
} 
$count++; 
} 
return(substr($str,$start_position,$end_position-$start_position)); 
} 
//判断是否是有韩文-UTF-8 (JavaScript) 
function checkKoreaChar(str) { 
for(i=0; i<str.length; i++) { 
if(((str.charCodeAt(i) > 0x3130 && str.charCodeAt(i) < 0x318F) || (str.charCodeAt(i) >= 0xAC00 && str.charCodeAt(i) <= 0xD7A3))) { 
return true; 
} 
} 
return false; 
} 
//判断是否有中文字符-GBK (JavaScript) 
function check_chinese_char(s){ 
return (s.length != s.replace(/[^\x00-\xff]/g,"**").length); 
}
PHP 相关文章推荐
在Zeus Web Server中安装PHP语言支持
Oct 09 PHP
PHP的基本常识小结
Jul 05 PHP
php获取301跳转URL简单实例
Dec 16 PHP
php去除换行(回车换行)的三种方法
Mar 26 PHP
php缩放gif和png图透明背景变成黑色的解决方法
Oct 14 PHP
php操作xml入门之cdata区段
Jan 23 PHP
php示例详解Constructor Prototype Pattern 原型模式
Oct 15 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
Feb 10 PHP
PHP调用微博接口实现微博登录的方法示例
Sep 22 PHP
ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】
Mar 11 PHP
thinkPHP和onethink微信支付插件分享
Aug 11 PHP
PHP实现微信公众号验证Token的示例代码
Dec 16 PHP
PHP URL地址获取函数代码(端口等) 推荐
May 15 #PHP
php select,radio和checkbox默认选择的实现方法
May 15 #PHP
php checkbox复选框值的获取与checkbox默认值输出方法
May 15 #PHP
php radio 单选框获取与保持值的实现代码
May 15 #PHP
php imagecreatetruecolor 创建高清和透明图片代码小结
May 15 #PHP
php gd2 上传图片/文字水印/图片水印/等比例缩略图/实现代码
May 15 #PHP
php getimagesize 上传图片的长度和宽度检测代码
May 15 #PHP
You might like
功能强大的PHP图片处理类(水印、透明度、旋转)
2015/10/21 PHP
Yii中Model(模型)的创建及使用方法
2015/12/28 PHP
Thinkphp框架开发移动端接口(2)
2016/08/18 PHP
PHP读MYSQL中文乱码的快速解决方法
2016/10/01 PHP
php链式操作的实现方式分析
2019/08/12 PHP
JavaScript延迟加载
2021/03/09 Javascript
通过js为元素添加多项样式,浏览器全兼容写法
2014/08/30 Javascript
原生js实现移动开发轮播图、相册滑动特效
2015/04/17 Javascript
利用jquery实现下拉框的禁用与启用
2016/12/07 Javascript
解决微信内置浏览器返回上一页强制刷新问题方法
2017/02/05 Javascript
JS实现含有中文字符串的友好截取功能分析
2017/03/13 Javascript
AngularJs实现聊天列表实时刷新功能
2017/06/15 Javascript
使用原生js封装的ajax实例(兼容jsonp)
2017/10/12 Javascript
如何从零开始利用js手写一个Promise库详解
2018/04/19 Javascript
使用nodeJS中的fs模块对文件及目录进行读写,删除,追加,等操作详解
2020/02/06 NodeJs
使用 Jest 和 Supertest 进行接口端点测试实例详解
2020/04/25 Javascript
[06:21]2014DOTA2国际邀请赛 庆祝VG首阶段领跑;B叔为挣牛排半夜整理情报
2014/07/13 DOTA
python读取csv文件示例(python操作csv)
2014/03/11 Python
对python中return和print的一些理解
2017/08/18 Python
Django视图和URL配置详解
2018/01/31 Python
关于Python的一些学习总结
2018/05/25 Python
python Web开发你要理解的WSGI &amp; uwsgi详解
2018/08/01 Python
Python 私有化操作实例分析
2019/11/21 Python
一文详述 Python 中的 property 语法
2020/09/01 Python
记一次python 爬虫爬取深圳租房信息的过程及遇到的问题
2020/11/24 Python
德国百年厨具品牌WMF美国站:WMF美国
2016/09/12 全球购物
语文教学随笔感言
2014/02/18 职场文书
农村产权制度改革实施方案
2014/03/21 职场文书
产品开发计划书
2014/04/27 职场文书
政风行风自查自纠报告
2014/10/21 职场文书
2015重阳节座谈会主持词
2015/07/30 职场文书
jQuery实现影院选座订座效果
2021/04/13 jQuery
详解JS ES6编码规范
2021/05/07 Javascript
详解MySQL中的主键与事务
2021/05/27 MySQL
Springboot如何同时装配两个相同类型数据库
2021/11/17 Java/Android
python函数的两种嵌套方法使用
2022/04/02 Python