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 相关文章推荐
PHP 循环列出目录内容的函数代码
May 26 PHP
解决File size limit exceeded 错误的方法
Jun 14 PHP
百度站点地图(百度sitemap)生成方法分享
Jan 09 PHP
php socket客户端及服务器端应用实例
Jul 04 PHP
Yii使用CLinkPager分页实例详解
Jul 23 PHP
PHP安装memcached扩展笔记
May 28 PHP
Zend Studio使用技巧两则
Apr 01 PHP
php 指定范围内多个随机数代码实例
Jul 18 PHP
thinkPHP框架对接支付宝即时到账接口回调操作示例
Nov 14 PHP
laravel5.2实现区分前后台用户登录的方法
Jan 11 PHP
PHP实现针对日期,月数,天数,周数,小时,分,秒等的加减运算示例【基于strtotime】
Apr 19 PHP
PHP PDOStatement::bindParam讲解
Jan 30 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 字符串加密函数(在指定时间内加密还原字符串,超时无法还原)
2010/04/28 PHP
迅速确定php多维数组的深度的方法
2014/01/07 PHP
用js判断用户浏览器是否是XP SP2的IE6
2007/03/08 Javascript
给网站上的广告“加速”显示的方法
2007/04/08 Javascript
jQuery asp.net 用json格式返回自定义对象
2010/04/07 Javascript
jQuery中live方法的重复绑定说明
2011/10/21 Javascript
JS获取后台Cookies值的小例子
2013/03/04 Javascript
javascript框架设计读书笔记之数组的扩展与修复
2014/12/02 Javascript
JS+CSS实现TreeMenu二级树形菜单完整实例
2015/09/18 Javascript
利用jQuery实现CheckBox全选/全不选/反选的简单代码
2016/05/31 Javascript
jQuery实现的仿百度,仿谷歌搜索下拉框效果示例
2016/12/30 Javascript
AngularJS Select(选择框)使用详解
2017/01/18 Javascript
JS实现的点击表头排序功能示例
2017/03/27 Javascript
Angular中管道操作符(|)的使用方法
2017/12/15 Javascript
Vue加载组件、动态加载组件的几种方式
2018/08/31 Javascript
this.$toast() 了解一下?
2019/04/18 Javascript
node实现爬虫的几种简易方式
2019/08/22 Javascript
原生js实现分页效果
2020/09/23 Javascript
[42:24]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第三场 11.27
2020/12/01 DOTA
Python基于动态规划算法解决01背包问题实例
2017/12/06 Python
python之super的使用小结
2018/08/13 Python
python自动分箱,计算woe,iv的实例代码
2019/11/22 Python
对Pytorch中Tensor的各种池化操作解析
2020/01/03 Python
Python importlib动态导入模块实现代码
2020/04/16 Python
HTML5跳转小程序wx-open-launch-weapp的示例代码
2020/07/16 HTML / CSS
美国球鞋寄卖网站:Stadium Goods
2018/05/09 全球购物
美国值得信赖的婚恋交友网站:eHarmony
2018/10/04 全球购物
九年级体育教学反思
2014/01/23 职场文书
房产委托公证书样本
2014/04/04 职场文书
2014年纪检工作总结
2014/11/12 职场文书
2014年质检工作总结
2014/11/26 职场文书
销售内勤岗位职责范本
2015/04/13 职场文书
小学生暑假安全公约
2015/07/14 职场文书
学生会部长竞选稿
2015/11/19 职场文书
mysql的MVCC多版本并发控制的实现
2021/04/14 MySQL
忆童年!用Python实现愤怒的小鸟游戏
2021/06/07 Python