如何将中文转为unicode和java gb2312转unicode

如何将中文转为unicode和GB2312_百度知道
如何将中文转为unicode和GB2312
我有更好的答案
将中文文本在记事本中另存为Unicode格式即为万国码字符集;另存为ANSI格式即为GB2312字符集。
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Erlang 中文简体字 GB2312 转 unicode 的办法(1) - CSDN博客
这些天,一直在琢磨Erlang中文简体字转unicode的办法。想到过,用 port,C或Python外部模块;用erts,dict,array,但不仅都太烦琐,甚至没怎么看懂。
编程需要考虑的两大问题:功能与效率。
效率,不仅是程序运行效率,还有编程工作效率。
代码越简单效率越高。用简单的工具和办法,显不出学术理论水平,所以,常见玩高深的。
中文简体字转unicode,不是高深的问题,涉及的理论和多种解决方案,网上都能找到。
需要的是,从中得到启发,想出在Erlang中适用的最简单的办法。
还好,我找到了。
一、在Erlang中使用编码转换表
转码的办法有两类,一是用算法随机转换,它省空间费时间;二是查找事先建立的编码表,它省时间费空间。
从实用的要求看,第二种办法比较好。
这个码表结构应该怎样?这要看中文简体字编码和Erlang字符串的相关特点。
中文简体字编码,这里只考虑GB2312,它已能满足太多需求了。它的特点是一个字由两个非ASCII码字节表示,如&中&的编码D6D0。
Erlang的字符串就是整数列表,如&中&是[214,208],unicode是[20013]。
Erlang查询数据,有其内部特殊方法,不用数组下标之类。
根据这些特点,确定使用Erlang的内建函数 put/2, get/1,如:
put({214,208},20013) 将&中&字的unicode写入内存;
Unicode = get({214,208}) 将&中&字的unicode从内存里读出。
下面的函数get_unicode/1,得到整个字符串的unicode,如:get_unicode("中文窗口"),返回[,]。
get_unicode([],U) -&&
&& lists:reverse(U);
get_unicode([A|T],U) when A & 128 -&
&& get_unicode(T,[A|U]);
get_unicode([A,B|Z],U) -&&
&& H = get({A,B}),
&& get_unicode(Z,[H|U]).
这个函数可以处理中西文混合的字符串,如:&
get_unicode2("asd中fg34文55窗66口tt4",[])
结果是 [97,115,100,3,51,52,,,6,52]
下面的问题,是要把GB2312全部汉字及其相应的unicode,逐一put到Erlang进程中。
这个问题,也就是建立在Erlang中使用的编码转换表。它无法在Erlang中编程解决,因为,Erlang的编译器erlc不支持unicode。
具体解决办法,以后接着说。python中文编码转换与正确输出-python-Php教程-壹聚教程网python中文编码转换与正确输出
Python代码中字符串的默认编码与代码文件本身的编码一致
decode的作用是将其他编码的字符串转换成unicode编码
encode的作用是将unicode编码转换成其他编码的字符串
&&& s=&中文&
'xd6xd0xcexc4'
&&& s.decode(&gbk&)
u'u4e2du6587'
&&& print s.decode(&gbk&)
&&& print s
&&& s.decode(&gbk&).encode(&gbk&)
'xd6xd0xcexc4'
&&& print s.decode(&gbk&).encode(&gbk&)
&&& a='中国人'
'xd6xd0xb9xfaxc8xcb'
&&& b = unicode(a,'gbk')
u'u4e2du56fdu4eba'
&&& a.find('中')
&&& a.find('人')
&&& b.find('人'.decode('gbk'))
&&& print a
&&& print b
这里find函数查到的结果应该很好理解啦。b中的find必须decode一下,否则会出错。至于为什么print出来的是汉字,我还没有研究出来呢。请高手告知。
&&& b.encode('gb18030')
'xd6xd0xb9xfaxc8xcb'
&&& b.encode('cp936')
'xd6xd0xb9xfaxc8xcb'
&&& b.encode('gbk')
'xd6xd0xb9xfaxc8xcb'
&&& b.encode('utf-8')
'xe4xb8xadxe5x9bxbdxe4xbaxba'
说明gb18030、gbk、gb2312以及cp936等都可以进行中文编码,并且结果还一致,utf-8也可以,只是编码方式不一样,所以结果不同而已。原理上他们都是一致的。
&&& type(a)
&type 'str'&
&&& type(b)
&type 'unicode'&
&&& type(b.encode('utf-8'))
&type 'str'&
说明python对字符串有两种编码方式,一种就是普通方式,另外一种就是unicode。注意utf-8也认为是普通的编码方式
下面提供了编辑转换
汉字转为html实体字符得了。
&echo mb_convert_encoding (&重玩一次&, &HTML-ENTITIES&, &gb2312&);
s = &中文&
s1 = u&中文&
unicode -& gbk
&s1.encode(&gbk&)
unicode -& utf-8
&s1.encode(&UTF-8&)
gbk -&unicode
&unicode(s, &gbk&)
&s.decode(&gbk&) 上一页: &&&&&下一页:相关内容
森林工坊快到碗里来3D编辑推荐
电脑壁纸相关专题QT4.6中文GB2312与utf-8和unicode及URL encoding %编码汇总
大家好,刚开始接触QT,还不太懂希望大家多交流。由于想写一个简单的程序涉及到编码转换的问题,故将学到的点滴分享一下。说明:windows中ie地址栏写“我们”发送到服务器端会变为“%CE%D2%C3%C7”,是GB2312转换成URL 百分号编码的形式ubuntu中firefox地址栏写“我们”发送到服务器变成"%E6%88%91%E4%BB%AC",是UTF-8转换成URL 百分号编码的形式下面分享汇总后的转换代码:(我的环境:ubuntu9.10 QT4.6)&&&&&&&&&&&&&&& //Ubuntu firefox http get "我们" %E6%88%91%E4%BB%AC UTF-8&&&&&&&&&&&&&&& //Windows ie http get "我们" %CE%D2%C3%C7 GB2312&&&&&&&&&&&&&&& char* s="0x我们";&& //UTF-8 char*&&&&&&&&&&&&&&& QString strT1="0x%CE%D2%C3%C7";& //GB2312的URL百分号编码&&&&&&&&&&&&&&& QByteArray baT1,baT2,baT3,baT4;&&&&&&&&&&&&&&& PercentEncoding2ByteArray(strT1, baT1);& //自己写的函数,由于QUrl::fromPercentEncoding仅适用UTF-8的URL编码&&&&&&&&&&&&&&& strT1=QTextCodec::codecForName("GB2312")-&toUnicode(baT1);& //GB2312's QByteArray Convert to QString Unicode&&&&&&&&&&&&&&&
baT2=QTextCodec::codecForName("GB2312")-&fromUnicode(strT1);&&&
//QString Unicode convert to GB2312 QByteArray&&&&&&&&&&&&&&& QString strT2,strT3,strT4,strT5;&&&&&&&&&&&&&&& strT2=QTextCodec::codecForName("UTF-8")-&toUnicode("0x我们"); //UTF-8 Char* to Unicode QString&&&&&&&&&&&&&&& baT3=QTextCodec::codecForName("UTF-8")-&fromUnicode(strT2);&&&& //Unicode QString to UTF-8 QByteArray&&&&&&&&&&&&&&& strT3=QTextCodec::codecForName("UTF-8")-&toUnicode(s); //UTF-8 Char* to Unicode QString&&&&&&&&&&&&&&& strT4=QUrl::toPercentEncoding(QString::fromLocal8Bit(s));&& //UTF-8 Char* to PercentEncoding (UTF-8 format)&&&&&&&&&&&&&&& strT5=QUrl::fromPercentEncoding("0x%E6%88%91%E4%BB%AC");&&& //PercentEncoding (UTF-8 format) to Unicode&&&&&&&&&&&&&&&
baT4=QTextCodec::codecForName("GB2312")-&fromUnicode(QTextCodec::codecForName("UTF-8")-&toUnicode(s));&
//UTF-8 Char* to GB2312 QByteArray另附一个小函数:(用于GB2312的URL百分号编码转换)&&& void PercentEncoding2ByteArray(QString strInput, QByteArray & ByteArrayOut)&&& {&&&&&&& for(int i=0; i&strInput.length();)&&&&&&& {&&&&&&&&&&& if (0==QString::compare(strInput.mid(i,1), QString("%")))&&&&&&&&&&& {&&&&&&&&&&&&&&& if ((i+2)&strInput.length())&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&& ByteArrayOut.append(strInput.mid(i+1,2).toShort(0,16));&&&&&&&&&&&&&&&&&&& i=i+3;&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&& else&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&& ByteArrayOut.append(strInput.mid(i,1));&&&&&&&&&&&&&&&&&&& i++;&&&&&&&&&&&&&&& }&&&&&&&&&&& }&&&&&&&&&&& else&&&&&&&&&&& {&&&&&&&&&&&&&&& ByteArrayOut.append(strInput.mid(i,1));&&&&&&&&&&&&&&& i++;&&&&&&&&&&& }&&&&&&& }//For end&&& }// PercentEncoding2ByteArray end
嗯,学习了。不错的&&&&javascript unicode与GBK2312(中文)编码转换方法
字体:[ ] 类型:转载 时间:
本文提供了一个javascript的unicode与GBK2312编码相互转换的方法,大家可以参考使用,实用的小实例
代码如下:var GB2312UnicodeConverter = {&&& ToUnicode: function (str) {&&&&&&& return escape(str).toLocaleLowerCase().replace(/%u/gi, '\\u');&&& }&&& , ToGB2312: function (str) {&&&&&&& return unescape(str.replace(/\\u/gi, '%u'));&&& }};
var str = '上海',document.write(str + '&br/&');unicode = GB2312UnicodeConverter.ToUnicode(str);document.write('汉字转换为Unicode代码:' + unicode + '&br/&&br/&');document.write('Unicode代码转换为汉字:' + GB2312UnicodeConverter.ToGB2312(unicode));
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 unicode gb2312 转换 的文章

 

随机推荐