检测中文长度gbk下2个字节

//$str = ‘fff&sdf你是sdf好fdf啊b歌hello中world‘;
$str = ‘d你b_fff是好啊歌中潺潺 ‘;
echo chineselength($str)."-----<br>";
function chineselength($str){
    $s=iconv("utf-8","gbk",$str);
    //echo $s;die();
    //$int=preg_match_all("/[\x{4e00}-\x{9fa5}]+/u", $s, $result);
    $count=0;
    $int=preg_match_all("/[".chr(0xa1)."-".chr(0xff)."]+/", $s, $result);
    foreach($result[0] as $k=>$v){
        $count+=mb_strlen($v,"gbk");
    }
    return $count;
}

时间: 2024-10-08 22:52:10

检测中文长度gbk下2个字节的相关文章

再谈multistage text input(中文输入法)下UITextView的内容长度限制

之前写过一篇<如何更好地限制一个UITextField的输入长度>,在文章最后得到的结论是可以直接使用 UIKIT_EXTERN NSString *const UITextFieldTextDidChangeNotification; 进行监听,截断超出maxLength的部分. 所以后来我在处理UITextView的内容长度时,也直接参考这个方法: [[NSNotificationCenter defaultCenter] addObserver:self selector:@select

Android——检测TXT文件中是否含有双字节字符

在读取双字节字符时,主要涉及到编码的选取: Java代码   public static boolean isRightfulTXT(File f) { // TODO Auto-generated method stub String regexp="[^\\x00-\\xff]";//双字节字符 Pattern p=Pattern.compile(regexp); try { FileInputStream fis=new FileInputStream(f); //"G

以太网帧长度为什么不能小于64字节?

0 引言 以太网帧长度不能小于64字节这个要求很多人都知道,但是要问为什么,应该有些人就答不上来了,用就是了呗~这样不好,我们要知其然还要知其所以然. 咳咳,不装B.其实在下也是最近把<计算机网络>翻出来看,正好看到了,就拿出来记录一波. 问:到底为什么以太网帧长度不能小于64字节呢? 答:为了避免以太网中信号碰撞. 1 何为碰撞检测? 碰撞检测是CSMA/CD(Carrier Sense Multiple Access with Collision Detection)协议的一个要点.这个协

ios下一个4字节对齐引起崩溃的问题

staticvoid TEACore(unsignedint in[2], unsignedint out[2], unsignedint key[4], long rounds) { unsigned int y = in[0], z = in[1]; unsigned int limit = 0, sum = 0; if(rounds > 0)// encrypt { limit = DELTA * rounds; while(sum != limit) { y += ((z<<4)

python 读取中文CSV &#39;gbk&#39; codec can&#39;t decode bytes in position 2-3:illegal multibyte sequence

读取中文的文档如Excel,CSV文件,需要中文编码 如gbk 解码才能转Unicode:然而 数据混合类型,读CSV文件就会出错,经管Excel正常. UnicodeDecodeError :'gbk' codec can't decode bytes in position 2-3:illegal multibyte sequence意思是:将一个字符串,通过gbk的方式,去解码,想要获得Unicode字符串,结果出错了 解决方法:处理的字符的确是gb2312,但是其中夹杂的部分特殊字符,是

python 处理html文本的中文字符gbk转utf-8

#中文字符gbk转utf-8 def gbk2utf8(self,raw): rs=raw.encode('raw_unicode_escape') #转为机器识别字符串 s=repr(rs) ss=unicode(eval(s),"gbk") #gbk解码为unicode utf8_str=ss.encode('utf-8') #unicode编码为utf-8 return utf8_str

检测某一目录下md5相同的文件

import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.io.IOUtils; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator

JDBC读取Oracle的US7ASCII编码中文乱码及不同编码下汉字占用字节的问题

数据库版本号:Oracle 10g 字符集:SIMPLIFIED CHINESE_CHINA.US7ASCII JDK:1.6.0_45 Oracle驱动:ojdbc14.jar 使用JDBC操作数据库,获取连接.运行SQL没有问题.可是,查询出来的结果中,全部汉字,均显示为乱码. debug查看到在数据从数据库中获取出来的时候,就已经是乱码,而使用PL/SQL等工具,均显示正常. 不知是否Oracle的驱动,在进行汉字处理的时候,使用了系统默认的字符集?此时,本着死马当活马医的理念,使用下对汉

Java 按字节获得字符串(中文)长度

引自:http://songjianyong.iteye.com/blog/1552973 package cn.com.songjy.test; import java.io.UnsupportedEncodingException; /** * 在Java中按字节获得字符串长度的两种方法 * */ public class App { public static void main( String[] args ) throws UnsupportedEncodingException {