检测字符串是否为UTF8编码】的更多相关文章

/** * 检测字符串是否为UTF8编码 * @param string $str 被检测的字符串 * @return boolean */ function is_utf8($str){ $len = strlen($str); for($i = 0; $i < $len; $i++){ $c = ord($str[$i]); if ($c > 128) { if (($c > 247)) return false; elseif ($c > 239) $bytes = 4; e…
UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码.由Ken Thompson于1992年创建.现在已经标准化为RFC 3629.UTF-8用1到4个字节编码Unicode字符.用在网页上可以统一页面显示中文简体繁体及其它语言(如英文,日文,韩文). <?php /** *检查字符串是否是utf8编码 *@param string $string 被检测字符串 *@return Boolean */ function i…
php计算字符串长度:utf8编码 中文当作1个字符处理(strlen默认当作两个字符) 上函数: /** * 计算 UTF-8 字符串长度 * * @param string $str * @return int */ function strlen_utf8($str) { $i = 0; $count = 0; $len = strlen($str); while ($i < $len) { $chr = ord($str[$i]); $count++; $i++; if ($i >=…
我们先要弄明白原始字符串里的字符用的是何种编码方式,运行如下 string tmp = "你好world"; for(int i=0;i<tmp.size();++i) { printf("%0X ",tmp.at(i)); } 程序输出: FFFFFFE4 FFFFFFBD FFFFFFA0 FFFFFFE5 FFFFFFA5 FFFFFFBD 77 6F 72 6C 64很明显,原始的字符串是使用UTF-8编码的,因为它满足UTF-8的编码规则: 1)对于…
几天前偶尔看到有人发帖子问“如何自动识别判断url中的中文参数是GB2312还是Utf-8编码” 也拜读了wcwtitxu使用巨牛的正则表达式检测UTF8编码的算法. 使用无数或条件的正则表达式用起来却是性能不高. 刚好曾经在项目中有类似的需求,这里把处理思路和整理后的源代码贴出来供大家参考 先聊聊原理: UTF8的编码规则如下表 看起来很复杂,总结起来如下: ASCII码(U+0000 - U+007F),不编码 其余编码规则为 •第一个Byte二进制以形式为n个1紧跟个0 (n >= 2),…
UTF8是以8bits即1Bytes为编码的最基本单位,当然也可以有基于16bits和32bits的形式,分别称为UTF16和UTF32,但目前用得不多,而UTF8则被广泛应用在文件储存和网络传输中. 编码原理 先看这个模板: UCS-4 range (hex.) UTF-8 octet sequence (binary) 0000 0000-0000 007F 0xxxxxxx 0000 0080-0000 07FF 110xxxxx 10xxxxxx 0000 0800-0000 FFFF…
这种转换一般用于网页地址; 我不知道 Delphi 是不是有现成的函数, 用到了就写了一个. //函数: function ToUTF8Encode(str: string): string; var   b: Byte; begin   for b in BytesOf(UTF8Encode(str)) do     Result := Format('%s%%%.2x', [Result, b]); end; //测试: var   str: string; begin   str := '…
在PHP检测字符串是否是UTF-8编码的时候,很多人在使用mb_detect_encoding的时候,经常遇到检测不准的问题,下面的方法可以准确检测编码是否是UTF-8 function check_utf8($str) { $len = strlen($str); for($i = 0; $i < $len; $i++){ $c = ord($str[$i]); if ($c > 128) { if (($c > 247)) return false; elseif ($c >…
如两个URL字符串: &q=%E8%A3%99%E5%AD%90&style=grid&seller_type=taobao &q=%CE%D0%C2%D6%D4%F6%D1%B9&style=list&s=44; 上面有uft-8编码,下面的用gb2312编码,但是怎么自动识别呢? 参考csdn论坛讨论,解决方法有两种: 不管它是utf-8,还是 gbk, 还是.... 先按 iso-8859-1 解码 然后用正则 匹配一下看是否全文符合 utf-8 规则…
下面这个小工具包含了判断unicode是否是汉字.数字.英文或者其他字符,全角符号转半角符号,unicode字符串归一化等工作. #!/usr/bin/env python # -*- coding:GBK -*- """汉字处理的工具: 判断unicode是否是汉字,数字,英文,或者其他字符. 全角符号转半角符号.""" __author__="internetsweeper <zhengbin0713@gmail.com>…