utf8编码检测方法分享
public bool isUtf8(byte[] rawText)
{
bool result = true;
if (rawText == null)
{
return !result;
}
int pos = 0;
while (pos < rawText.Length && result)
{
if ((rawText[pos] & 0x7F) == rawText[pos])
{
pos++;
}
else
{
int bitLen = 7;
while (((rawText[pos] >> bitLen) & 0x01) == 1 && bitLen > 0)
{
bitLen--;
}
int byteCount = 7 - bitLen;
if (byteCount > 1 && byteCount < 7)
{
for (int i = 1; i < byteCount; ++i)
{
if (pos + i >= rawText.Length || (rawText[pos + i] & 0xBF) != rawText[pos + i])
{
result = false;
break;
}
}
pos += byteCount;
}
else
{
result = false;
}
}
}
return result;
}
相关推荐
-
Mysql数据库编码问题 (修改数据库,表,字段编码为utf8)
因为utf8字符集是目前最适合于实现多种不同字符集之间的转换的字符集,尽管你在命令行工具上可能无法正确查看数据库中的内容,我依然强烈建议使用utf8作为默认字符集接下来是完整的一个例子: 1.创建数据库表 mysql>CREATE DATABASE IF NOT EXISTS my_db default charset utf8 COLLATE utf8_general_ci; #注意后面这句话 "COLLATE utf8_general_ci",大致意思是在排序时根据utf8校
-
基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)
php导入到excel乱码是因为utf8编码在xp系统不支持所有utf8编码转码一下就完美解决了utf-8编码案例Php代码 复制代码 代码如下: <?php header("Content-Type: application/vnd.ms-excel; charset=UTF-8"); header("Pragma: public"); header("Expires: 0"); header("Cache-Control: m
-
PHP utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码
老声长谈,着是困惑很多人的问题,如果处理不好,都是乱码,说这些话并不是我对编码很精通,只是在这方面是得留神,自己总结了一点小经验(容易出现乱码的地方有php文件里面 ,数据库里面 存储 的编码 ,页面显示 ,数据传输 ): 1.在建数据库的时候,尤其是用phpMyAdmin与MYSQL打交道时候,一般都是utf-8,字段为 utf8_general_ci 数据库的设置: 在my.ini文件中查找:[mysql]default-character-set = utf8[mysqld]default
-
查看修改mysql编码方式让它支持中文(gbk或者utf8)
MySQL的默认编码是Latin1,不支持中文,要支持中文需要把数据库的默认编码修改为gbk或者utf8. 1.需要以root用户身份登陆才可以查看数据库编码方式(以root用户身份登陆的命令为:>mysql -u root –p,之后两次输入root用户的密码),查看数据库的编码方式命令为: >show variables like 'character%'; +--------------------------+----------------------------+ | Variab
-
js 编码转换 gb2312 和 utf8 互转的2种方法
方法一: 复制代码 代码如下: function gb2utf8(data){ var glbEncode = []; gb2utf8_data = data; execScript("gb2utf8_data = MidB(gb2utf8_data, 1)", "VBScript"); var t=escape(gb2utf8_data).replace(/%u/g,"").replace(/(.
-
ASP关于编码的几个有用的函数小结(utf8)
1.'UTF转GB---将UTF8编码文字转换为GB编码文字 复制代码 代码如下: function UTF2GB(UTFStr) for Dig=1 to len(UTFStr) '如果UTF8编码文字以%开头则进行转换 if mid(UTFStr,Dig,1)="%" then 'UTF8编码文字大于8则转换为汉字 if len(UTFStr) >= Dig+8 then GBStr=GBStr & ConvChinese(mid(UTFStr,Dig,9)) Dig
-
多种语言(big5\gbk\gb2312\utf8\Shift_JIS\iso8859-1)的网页编码切换解决方案归纳
1.response.setContentType("text/html; charset=GB2312"); 或者response.setContentType("text/html; charset=UTF-8"); charset前面留一个空格 2.头文件包含 3. 一般处理是将在网页上提交的中文转码为Unicode存储在数据库中,取出来的 时候,用自动转码(ContentType="text/html;charset=gb2312"或Co
-
PHP 截取字符串 分别适合GB2312和UTF8编码情况
1. 截取GB2312中文字符串 复制代码 代码如下: <?php //截取中文字符串 function mysubstr($str, $start, $len) { $tmpstr = ""; $strlen = $start + $len; for($i = 0; $i < $strlen; $i++) { if(ord(substr($str, $i, 1)) > 0xa0) { $tmpstr .= substr($str, $i, 2); $i++; }
-
MySql修改数据库编码为UTF8避免造成乱码问题
mysql 创建数据库时指定编码很重要,很多开发者都使用了默认编码,乱码问题可是防不胜防.制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题. 网页数据一般采用UTF8编码,而数据库默认为latin .我们可以通过修改数据库默认编码方式为UTF8来减少数据库创建时的设置,也能最大限度的避免因粗心造成的乱码问题. 我们遵循的标准是,数据库,表,字段和页面或文本的编码要统一起来 我们可以通过命令查看数据库当前编码: mysql> SHOW VARIABLES LIKE 'character%'
-
XMLHTTP 乱码的解决方法(UTF8,GB2312 编码 解码)
在数据发送一方,利用 javascript 的 escape 函数事先将所有中文转换成英文编码并保存(也可以用 ASP 等其它语言的函数实时转换输出). 在数据接收一方,利用 javascript 的 unescape 函数将所有英文编码还原. 由于 Ajax 不论任何编码都能正常传送英文,所以用这种方法可以轻松解决. -------------------------------------------------------------------------------- 用XMLHTTP
-
UTF8编码内的繁简转换的PHP类
曾找过一个JS版的,但是到了UTF8编码里不能用,于是就产生了自已写一个的念头.其实我这个代码的实现原理很简单的,只是一个替换字符集的过程,相信大部份人都可以写得出来.以下是代码,不知道有没有bug,大家如果在使用上有问题,可以提出来 复制代码 代码如下: <?php //<meta charset=utf-8"> class utf8_chinese { private $utf8_gb2312; private $utf8_big5; public function __c
-
PHP截断标题且兼容utf8和gb2312编码
复制代码 代码如下: <?php if(strlen($r[title])>45){$str=utf8Substr($r[title],0,15)."...";}else{$str=$r[title];}echo $str; ?> //截取utf8字符串 function utf8Substr($str, $from, $len) { return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.
-
php验证手机号码(支持归属地查询及编码为UTF8)
复制代码 代码如下: <?php // 手机号验证 function checkMobileValidity($mobilephone){ $exp = "/^13[0-9]{1}[0-9]{8}$|15[012356789]{1}[0-9]{8}$|18[012356789]{1}[0-9]{8}$|14[57]{1}[0-9]$/"; if(preg_match($exp,$mobilephone)){ return true; }else{ return false; }
-
真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )
复制代码 代码如下: /* * 功能: 作用跟substr一样,除了它不会造成乱码 * 参数: * 返回: */ function utf8_substr( $str , $start , $length=null ){ // 先正常截取一遍. $res = substr( $str , $start , $length ); $strlen = strlen( $str ); /* 接着判断头尾各6字节是否完整(不残缺) */ // 如果参数start是正数 if ( $start >= 0
-
JoshChen_web格式编码UTF8-无BOM的小细节分析
但是在开发的过程中,发现一个小细节的问题,必须要打开F12才能看到的,原来,在head头部里面的所有引用的东西以及title等等,全部都跑到body里面去了,苦思冥想,百度.google全找不到答案.只好放弃了因为他并没有影响到我的功能以及页面上的样式. 而到了今天,在开发别的项目的时候,页面用到了frameset,我想大家应该都明白,frameset只有放在body外面才能使用.然而也是因为这个问题,把head里面的,以及frmaeset的内容全部跑到body里面,而且在body下还有一个空白
-
PHP UTF8编码内的繁简转换类
曾找过一个JS版的,但是到了UTF8编码里不能用,于是就产生了自已写一个的念头.其实我这个代码的实现原理很简单的,只是一个替换字符集的过程,相信大部份人都可以写得出来.以下是代码,不知道有没有bug,大家如果在使用上有问题,可以提出来 复制代码 代码如下: <?php //<meta charset=utf-8"> class utf8_chinese { private $utf8_gb2312; private $utf8_big5; public function __c
-
php字符编码转换之gb2312转为utf8
在php中字符编码转换我们一般会用到iconv与mb_convert_encoding进行操作,但是mb_convert_encoding在转换性能上比iconv要差很多哦.string iconv ( string in_charset, string out_charset, string str ) 注意:第二个参数,除了可以指定要转化到的编码以外,还可以增加两个后缀://TRANSLIT 和 //IGNORE,其中 //TRANSLIT 会自动将不能直接转化的字符变成一个或多个近似的字符
-
Oracle将字符编码从GBK转到UTF8,如何操作比较稳妥?
朋友问: 有个学校oracle数据库的编码是GBK,而且库里边已经有很多生产数据了,现在想改成UTF8的,如果执行了这步操作,会出现哪些问题? 我的回答: 因为utf8的库中文占3个byte,gbk占2个byte,所以会出现客户端乱码. 比较稳妥的方案是,再搭建一个oracle环境,设置成utf8编码,把旧的oracle数据迁移到新的utf8编码的oracle库中的环境. oracle群里面peter的回答: 官方的方法是新建一个utf8的库再导入. 直接改内部视图的办法是错的,从不这样用,也不
随机推荐
- jquery实现左右轮播图效果
- vue深入解析之render function code详解
- Honeymoon(蜜月)的来历
- Java基础 Servlet监听器详解
- js使用栈来实现10进制转8进制与取除数及余数
- PHP+jQuery+Ajax+Mysql如何实现发表心情功能
- Asp.NET调用百度翻译的方法
- PHP时间戳与日期之间转换的实例介绍
- 通过dbi使用perl连接mysql数据库的方法
- jQuery EasyUI datagrid实现本地分页的方法
- SQL Server利用bcp命令把SQL语句结果生成文本文件
- 解决jQuery uploadify在非IE核心浏览器下无法上传
- jqGrid翻页时数据选中丢失问题的解决办法
- Autocomplete Textbox Example javascript实现自动完成成功
- JS实现双击屏幕滚动效果代码
- 使用Linux安装JDK1.7教程详解
- 设计windows phone页面主题
- 在Windows版的PHP中使用ADO
- Android仿微信/支付宝密码输入框
- Android App开发中使用RecyclerView替代ListView的实践