首页 技术教程 实用代码 注册破解 正则表达式 网址导航 电子书籍

UTF-8,GBK,GB2312编码规则与检测

UTF8 是兼容 ascii 的,所以 0~127 就和 ascii 完全一致了。gbk 的第一字节是高位为 1 的,第 2 字节可能高位为 0 。这种情况一定是 gbk ,因为 UTF8 对 >127 的编码一定每个字节高位为 1 。另外,对于中文,UTF8 一定编码成 3 字节。(似乎亚洲文字都是,UTF8 中双字节好象只用于西方字符集),所以型如 110***** 10****** 的,我们一概看成 gbk/gb2312 编码。这就解决了“位”的问题。汉字以及汉字标点(包括日文汉字等),在 UTF8 中一定被编码成:1110**** 10****** 10******连续汉字数量不是 3 的倍数的 gb2312 编码的汉字字符串一定不会被误认为 UTF8 。用了一些gbk 扩展字,或是插入了一些 ascii 符号的字...
类别:其它 - 字符编码    查看:162    更新:2014-06-06

中文与韩、日文混排出现在Gb2312编码的Aspx的处理方法

有一个Web项目,Web.Config中requestEncoding和responseEncoding都是gb2312,而从数据库中取出的简介数据可能是中文和韩、日文混合的内容,这时候如果直接输出到页面上,其页面会出现乱码,其中的韩文内容无法正确显示。当然如果项目的编码都使用Utf-8的话将没有这个问题,但这个项目是一个老项目,为了尽量不要影响已有的程序,所以无法将编码改为Utf-8,只能在本页面上动脑筋。     经过研究,发现这个问题可以通过Html实体的方法解决。 对于Html实体请参考: Character entity references in HTML 4 HTML Document Representation 测试代码: Byte[] ...
类别:网页编程 - ASP.NET    查看:171    更新:2014-05-20

UTF-8转换成GB2312的全处理

主题:将UTF-8编码的字符串转化成GB2312的编码,没有对应编码的字符串转化为&#DEC; 的格式。如 회=>회 语言:PHP,Javascript 内容:浏览器用Javascript中encodeURI函数将字符串(包含非GB2312中字符)编码,GET请求到服务器,页面编码均为GB2312,服务器PHP脚本将请求数据转换成GB2312表示。 基础:   1. 单独使用iconv函数只能转换GB2312字符,外文字符无法转换   2. 没有现成的函数可以用   3. bindec()函数:将二进制格式的"01"字符串转换为十进制数   4. decbin()函数:将十进制数转换为二进制字符串,如decbin(224)="11100000"   思路:因为UT...
类别:网页编程 - PHP技术    查看:132    更新:2014-05-19

PHP实现gb2312、UTF-8等字符和unicode间的编码转换及PHP版unescape

<? /**  * 将字符串转换成unicode编码  *  * @param string $input  * @param string $input_charset  * @return string  */ function str_to_unicode($input, $input_charset = 'gbk'){  $input = iconv($input_charset, "gbk", $input);  preg_match_all("/[x80-xff]?./", $input, $ar);  $b = array_map('utf8_unicode_', $ar[0]);  $outstr = join("", $b);  return $outstr; } function utf8_unicode_($c, $input_charset = 'gbk'){  $c = iconv($input_charset, 'utf-8', $c);  return utf8_unicode($c); } // utf...
类别:网页编程 - PHP技术    查看:137    更新:2014-05-19

不用iconv库的gb2312与utf-8的互换函数

一份gb2312.txt(184799字节)确实显得太大了点,而且还要经unicode转换。这份对照表为51965字节,要小的多了。对于无法使用iconv函数库的场合还是很实用的。<?php//对照表的使用$filename = "gb2utf8.txt";$fp = fopen($filename,"r");while(! feof($fp)) {list($gb,$utf8) = fgetcsv($fp,10);$charset[$gb] = $utf8;}fclose($fp);//以上读取对照表到数组备用/** gb2312到utf-8 **/function gb2utf8($text, &$charset) {//提取文本中的成分,汉字为一个元素,连续的非汉字为一个元素preg_match_all("/(?:[x80-xff].)|[x01-x7f]+/",$text,$tmp);$tmp = $tmp[0];//分离出汉字$ar = array_intersect($tmp, array_keys($charset));//替换汉字...
类别:网页编程 - PHP技术    查看:117    更新:2014-05-19

在Java中将数据由UTF8转换成GB2312格式

UTF8转换成GB2312 当我们在基于HTTP协议的JSP或Servlet的应用中获取数据或发送请求时,JVM会把输送的数据编码成UTF8格式。如果我们直接从HTTP流中提取中文数据,提取的结果为“????”(可能更多问号),为转换成我们能够理解的中文字符,我们需要把UTF8转换成GB2312,借助ISO-8859-1标准编码能够轻易的实现,下面的代码实现了这一功能:  byte [] b;  String utf8_value;  utf8_value = request.getParameter("NAME");//从HTTP流中取"NAME"的UTF8数据  b = utf8_value.getBytes("8859_1"); //中间用ISO-8859-1过渡  String name = new ...
类别:程序开发 - JAVA    查看:106    更新:2014-05-13

GB2312编码

GB2312或GB2312-80是一个简体中文字符集的中国国家标准,全称为《信息交换用汉字编码字符集--基本集》,由中国国家标准总局发布,1981年5月1日实施。GB2312编码通行于大陆;新加坡等地也采用此编码。几乎所有的中文系统和国际化的软件都支持GB2312。GB2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个;同时,GB2312收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄罗斯语西里尔字母在内的682个全形字符。GB2312的出现,基本满足了汉字的计算机处理需要,它所收录的汉字已经覆盖99.75%的使用频率。对于人名、古汉语等方面出现的罕用字,GB2312不能处理,这导致了后来GBK及GB18030汉字字符集的出现。...
类别:其它 - 字符编码    查看:130    更新:2014-05-09