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 采集程序 常用函数
Dec 18 PHP
检测png图片是否完整的php代码
Sep 06 PHP
PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
Jun 04 PHP
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
Aug 23 PHP
php实现过滤表单提交中html标签的方法
Oct 17 PHP
PHP内置的Math函数效率测试
Dec 01 PHP
php通过curl模拟登陆DZ论坛
May 11 PHP
PHP模拟asp.net的StringBuilder类实现方法
Aug 08 PHP
PHP+iframe图片上传实现即时刷新效果
Nov 18 PHP
php Session无效分析资料整理
Nov 29 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
Apr 09 PHP
tp5 sum某个字段相加得到总数的例子
Oct 18 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
PHP4实际应用经验篇(1)
2006/10/09 PHP
getimagesize获取图片尺寸实例
2014/11/15 PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
2015/06/24 PHP
php结合redis高并发下发帖、发微博的实现方法
2016/12/15 PHP
PHP实现留言板功能的详细代码
2017/03/25 PHP
详解PHP序列化和反序列化原理
2018/01/15 PHP
style、 currentStyle、 runtimeStyle区别分析
2010/08/01 Javascript
分享27个jQuery 表单插件集合推荐
2011/04/25 Javascript
转义字符(\)对JavaScript中JSON.parse的影响概述
2013/07/17 Javascript
JavaScrip实现PHP print_r的数功能(三种方法)
2013/11/12 Javascript
浅谈checkbox的一些操作(实战经验)
2013/11/20 Javascript
JQuery通过AJAX从后台获取信息显示在表格上并支持行选中
2015/09/15 Javascript
JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性
2015/12/26 Javascript
Vue.js每天必学之指令系统与自定义指令
2016/09/07 Javascript
ajax图片上传,图片异步上传,更新实例
2016/12/30 Javascript
详解django模板与vue.js冲突问题
2019/07/07 Javascript
JS浮点数运算结果不精确的Bug解决
2019/08/01 Javascript
Vue 动态组件components和v-once指令的实现
2019/08/30 Javascript
vue实现element表格里表头信息提示功能(推荐)
2019/11/20 Javascript
JavaScript实现猜数字游戏
2020/05/20 Javascript
JavaScript实现HSL拾色器
2020/05/21 Javascript
浅谈js数组splice删除某个元素爬坑
2020/10/14 Javascript
python 获取网页编码方式实现代码
2017/03/11 Python
python实现简单http服务器功能
2018/09/17 Python
python使用pygame实现笑脸乒乓球弹珠球游戏
2019/11/25 Python
python time.strptime格式化实例详解
2021/02/03 Python
深入解读CSS3中transform变换模型的渲染
2016/05/27 HTML / CSS
CSS3 实用技巧:实现黑白图像效果示例代码
2013/07/11 HTML / CSS
html5生成柱状图(条形图)效果的实例代码
2016/03/25 HTML / CSS
EVE LOM英国官网:全世界最好的洁面膏
2017/10/30 全球购物
澳大利亚家具和家居用品购物网站:Zanui
2018/12/29 全球购物
医学专业毕业生推荐信
2013/11/14 职场文书
4s店总经理岗位职责
2013/12/31 职场文书
主持人演讲稿
2014/05/13 职场文书
Java Kafka 消费积压监控的示例代码
2021/07/01 Java/Android
面试提问mysql一张表到底能存多少数据
2022/03/13 MySQL