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 curl获取301或302转向的网址问题的解决方法
Jun 02 PHP
PHP 清空varnish 缓存的详解(包括指定站点下的)
Jun 20 PHP
php二维数组排序方法(array_multisort usort)
Dec 25 PHP
php使用imagick模块实现图片缩放、裁剪、压缩示例
Apr 17 PHP
php smarty模板引擎的6个小技巧
Apr 24 PHP
PHP屏蔽过滤指定关键字的方法
Nov 03 PHP
thinkphp自带验证码全面解析
Sep 18 PHP
php 生成加密公钥加密私钥实例详解
Jun 16 PHP
PHP实现动态删除XML数据的方法示例
Mar 30 PHP
PHP chunk_split()函数讲解
Feb 12 PHP
PHP封装的分页类与简单用法示例
Feb 25 PHP
基于PHP实现用户登录注册功能的详细教程
Aug 04 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
从一个不错的留言本弄的mysql数据库操作类
2007/09/02 PHP
QueryPath PHP 中的jQuery
2010/04/11 PHP
PHP四舍五入、取整、round函数使用示例
2015/02/06 PHP
Laravel中的chunk组块结果集处理与注意问题
2018/08/15 PHP
理解Javascript_10_对象模型
2010/10/16 Javascript
通过Jscript中@cc_on 语句识别IE浏览器及版本的代码
2011/05/07 Javascript
JS继承 笔记
2011/07/13 Javascript
文本框中禁止非数字字符输入比如手机号码、邮编
2013/08/19 Javascript
jquery教程ajax请求json数据示例
2014/01/13 Javascript
javascript校验价格合法性实例(必须输入2位小数)
2014/05/05 Javascript
基于NodeJS的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践
2014/09/26 NodeJs
jQuery中append()方法用法实例
2015/01/08 Javascript
js上传图片及预览功能实例分析
2015/04/24 Javascript
JavaScript实现数组随机排序的方法
2015/06/26 Javascript
javascript 日期相减-在线教程(附代码)
2017/08/17 Javascript
vue初始化动画加载的实例
2018/09/01 Javascript
js中数组对象去重的两种方法
2019/01/18 Javascript
JS html事件冒泡和事件捕获操作示例
2019/05/01 Javascript
在elementui中Notification组件添加点击事件实例
2020/11/11 Javascript
一步步解析Python斗牛游戏的概率
2016/02/12 Python
python简易远程控制单线程版
2018/06/20 Python
详解用python自制微信机器人,定时发送天气预报
2019/03/25 Python
python调用并链接MATLAB脚本详解
2019/07/05 Python
pycharm sciview的图片另存为操作
2020/06/01 Python
python闭包与引用以及需要注意的陷阱
2020/09/18 Python
matplotlib运行时配置(Runtime Configuration,rc)参数rcParams解析
2021/01/05 Python
德国鞋子网上商店:Omoda.de
2017/03/31 全球购物
SISLEY希思黎官方旗舰店:享誉全球的奢华植物美容品牌
2018/04/25 全球购物
数据库测试通常都包括哪些方面
2015/11/30 面试题
高中生学习生活的自我评价
2013/11/27 职场文书
车间副主任岗位职责
2013/12/24 职场文书
励志广播稿300字(5篇)
2014/09/15 职场文书
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
离职感谢信
2015/01/21 职场文书
离婚案件被告代理词
2015/05/23 职场文书
JavaScript异步操作中串行和并行
2021/11/20 Javascript