中文编码

双字节字符编码范围:

1. GBK (GB2312/GB18030)

\x00-\xff           →GBK双字节编码范围

\x20-\x7f         →ASCII    取出非汉字的字符

\xa1-\xff 中文 →gb2312 取出所有中文(不包括字母数字和字符)

\x80-\xff 中文 →gbk 取出所有中文(不包括字母数字和字符)

2. UTF-8 (Unicode)

\一-\?    →(中文) 取出所有中文

\x3130-\x318F    →(韩文) 取出所有韩文

\xAC00-\xD7A3   →(韩文) 取出所有韩文

\?-\一   →(日文) 取出所有日文

^ 可以用来互相转换

ps: 韩文是大于[u9fa5]的字符

代码例子

//判断内容里有没有中文-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

$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

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

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);

}

总结

正则表达式经常来判断中文和韩文等非英文字符,备份一下这些编码的范围以方便查询。

在正则表达式中经常要判断中文,gbk编码是双字节,而utf8是三字节

php 判断是否是日文,php正则判断中文韩文的编码的例子相关推荐

  1. js正则禁止输中文韩文日文

    password = password.replace(/[\u4e00-\u9fa5]|[\u0800-\u4e00]|[\uac00-\ud7ff]/g,""); 通过unic ...

  2. Linux显示中文—韩文—日文-Zhcon使用方法

    方法一. 需要下载的文件有两个:zhcon-0.2.5.tar.gz和zhcon-0.2.5-to-0.2.6.diff.gz. 下载地址:http://sourceforge.net/project ...

  3. .Net常用正则判断方法

    .Net常用正则判断方法 原文:.Net常用正则判断方法 /// <summary>/// 判断string类型否为数字/// </summary>/// <param ...

  4. php正则获取标签,PHP通过正则匹配中文字符 过滤html标签 获取文本内容

    正则匹配中文汉字根据页面编码不同而略有区别: GBK/GB2312编码:[x80-xff]+ 或 [xa1-xff]+ UTF-8编码:[x{4e00}-x{9fa5}]+/u [php] $str ...

  5. 转载(中文、日文、韩文编码问题)

    随着GB2312时代的没落和中国官方强制推行的GB18030的消沉,所有人都觉得,无需置疑地Unicode一统天下的时代即将,甚至已经来临了. 我也曾经是,现在仍旧是Unicode的推崇者. 推崇的理 ...

  6. php 正则匹配中文汉字

    正则匹配中文汉字 正则匹配中文汉字根据页面编码不同而略有区别: GBK/GB2312编码:[x80-xff>]+ 或 [xa1-xff]+ UTF-8编码:[x{4e00}-x{9fa5}]+/ ...

  7. 正则判断 手机邮箱的正确格式

    // 正则判断手机号码地址格式 +(BOOL) isMobileNumber:(NSString *)mobileNum { /** * 手机号码 * 移动:134[0-8],135,136,137, ...

  8. jq 正则判断邮箱_Python正则15分钟入门

    lypython群里有同学问我,如何从大量格式不确定的word文档抽取姓名.电话号码.邮箱等信息存入excel表格.通过之前我们的文章,他已经学会读取和写入文档和表格,但就是无法处理格式不确定的文档. ...

  9. js 正则判断用户是否输入表情

    js 正则判断用户是否输入表情 var emouji = /\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F]/g;if(emouji.test(用户输入的值)){ ...

  10. C#正则判断手机号 邮箱 网址 日期 IP 身份证等

    C#正则判断手机号 邮箱 网址 日期 IP 身份证等: /*********************************************************************** ...

最新文章

  1. 菜鸟学习Hibernate——简单的一个例子
  2. python脚本自动运行失败_解决Python中定时任务线程无法自动退出的问题
  3. 201621123058《java程序设计》第二周学习总结
  4. 7-161 梅森数 (20 分)
  5. 物联网专科专业必修课程_江西自考专科物联网技术专业的考试课程/科目
  6. 300plc与组态王mpi通讯_MPI(DP)-ETH以太网转换器使用手册
  7. [转]linux下完全备份数据库mysql
  8. 计算机学院网络与新媒体,网络与新媒体专业课程描述.PDF
  9. Linux命令----rpm
  10. 如何将Python程序打包成linux可执行文件
  11. day03-函数编程
  12. P5713 【深基3.例5】洛谷团队系统(C语言)
  13. 用Excel或WPS做两独立样本的T检验
  14. CTF Web_php_unserialize 详细解题过程
  15. iPhone 8价格已破发!苹果无奈只能减产
  16. C语言中遇到的问题之%d,%2d等的用法
  17. CAD闪退的解决方法
  18. Linux之CentOS7安装(VMware虚拟机安装及系统安装图文教程)
  19. 四川玖益科技:竞价活动对店铺的要求
  20. Java P1035 [NOIP2002 普及组] 级数求和 洛谷入门题

热门文章

  1. matlab 多变量求偏导,新手求解两个自变量的函数,求其中一个变量的偏导
  2. python采集世界大学排名并作数据可视化, 来看看你的母校上榜没~
  3. Python教程:while 循环用法讲解
  4. MFC弹出确认和取消对话框
  5. SSM(Spring+SpringMVC+Mybatis) 整合
  6. CSS编写格式边框与渐变内容补充
  7. 读取npy格式的文件
  8. 《当程序员的那些狗日日子》六
  9. qt 5.15.2 版本安装脱坑指南
  10. Leftist Heaps 习题解