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 相关文章推荐
cmd下运行php脚本
Nov 25 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
May 15 PHP
php中利用str_pad函数生成数字递增形式的产品编号
Sep 30 PHP
php简单实现快速排序的方法
Apr 04 PHP
php实现的简单检验登陆类
Jun 18 PHP
基于OpenCart 开发支付宝,财付通,微信支付参数错误问题
Oct 01 PHP
PHP基于自定义类随机生成姓名的方法示例
Aug 05 PHP
在Laravel中使用DataTables插件的方法
May 29 PHP
Yii2.0实现的批量更新及批量插入功能示例
Jan 29 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
Mar 28 PHP
PHP dirname简单使用代码实例
Nov 13 PHP
如何理解PHP核心特性命名空间
May 28 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 visitFile()遍历指定文件夹函数
2010/08/21 PHP
PHP的PSR规范中文版
2013/09/28 PHP
PHP使用ob_start生成html页面的方法
2014/11/07 PHP
PHP实现抓取HTTPS内容
2014/12/01 PHP
php获取字符串中各个字符出现次数的方法
2015/02/23 PHP
php 无限级分类 获取顶级分类ID
2016/03/13 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
2016/08/12 PHP
jquery ajax提交表单数据的两种实现方法
2010/04/29 Javascript
仅img元素创建后不添加到文档中会执行onload事件的解决方法
2011/07/31 Javascript
动态标签 悬停效果 延迟加载示例代码
2013/11/21 Javascript
Extjs中RowExpander控件的默认展开问题示例探讨
2014/01/24 Javascript
排序算法的javascript实现与讲解(99js手记)
2014/09/28 Javascript
jquery实现在光标位置插入内容的方法
2015/02/05 Javascript
javaScript中Math()函数注意事项
2015/06/18 Javascript
每个程序员都需要学习 JavaScript 的7个理由小结
2016/09/03 Javascript
jQuery向父辈遍历的简单方法
2016/09/18 Javascript
深入理解Angular.JS中的Scope继承
2017/06/04 Javascript
分析javascript原型及原型链
2018/03/18 Javascript
js闭包学习心得总结
2018/04/17 Javascript
Vue Router去掉url中默认的锚点#
2018/08/01 Javascript
axios使用拦截器统一处理所有的http请求的方法
2018/11/02 Javascript
微信小程序实现单选选项卡切换效果
2020/06/19 Javascript
Python判断变量是否已经定义的方法
2014/08/18 Python
python3.6环境安装+pip环境配置教程图文详解
2019/06/20 Python
python生成器/yield协程/gevent写简单的图片下载器功能示例
2019/10/28 Python
使用Python实现 学生学籍管理系统
2019/11/26 Python
Python enumerate函数遍历数据对象组合过程解析
2019/12/11 Python
css实例教程 一款纯css3实现的超炫动画背画特效
2014/11/05 HTML / CSS
基于HTML5 Canvas:字符串,路径,背景,图片的详解
2013/05/09 HTML / CSS
基于Html5 canvas实现裁剪图片和马赛克功能及又拍云上传图片 功能
2019/07/09 HTML / CSS
捷克家电和家具购物网站:OKAY.cz
2020/07/23 全球购物
网站客服岗位职责
2014/04/05 职场文书
土木工程求职信
2014/05/29 职场文书
医生见习报告范文
2014/11/03 职场文书
2015年治庸问责工作总结
2015/07/27 职场文书
企业开发CSS命名BEM代码规范实践
2022/02/12 HTML / CSS