Function U2UTF8(Byval a_iNum) Dim sResult,sUTF8 Dim iTemp,iHexNum,i iHexNum = Trim(a_iNum) If iHexNum = "" Then Exit Function End If sResult = "" If (iHexNum < 128) Then sResult = sResult & iHexNum ElseIf (iHexNum < 2048) Then sResult = ChrB(&H80 + (iHexNum And &H3F)) iHexNum = iHexNum \ &H40 sResult = ChrB(&HC0 + (iHexNum And &H1F)) & sResult ElseIf (iHexNum < 65536) Then sResult = ChrB(&H80 + (iHexNum And &H3F)) iHexNum = iHexNum \ &H40 sResult = ChrB(&H80 + (iHexNum And &H3F)) & sResult iHexNum = iHexNum \ &H40 sResult = ChrB(&HE0 + (iHexNum And &HF)) & sResult End If U2UTF8 = sResult End Function Function GB2UTF(Byval a_sStr) Dim sGB,sResult,sTemp Dim iLen,iUnicode,iTemp,i sGB = Trim(a_sStr) iLen = Len(sGB) For i = 1 To iLen sTemp = Mid(sGB,i,1) iTemp = Asc(sTemp) If (iTemp>127 or iTemp<0) Then iUnicode = AscW(sTemp) If iUnicode<0 Then iUnicode = iUnicode + 65536 End If Else iUnicode = iTemp End If sResult = sResult & U2UTF8(iUnicode) Next GB2UTF = sResult End Function '调用方法 Response.BinaryWrite(GB2UTF("GB2312转utf8"))
如何把汉字转化为GB2312
一般汉字都是2312的,如果是uncode,可以通过记事本或者ut32等编辑软件转换!
文字怎么转换成GB2312编码
数据输入在a1
在b1输入
=code(a1)
转换了啊,你的是16进制的,我给你的公式得到的是10进制的
你要是非要16进制
那么这样
需要 点工具-加载宏-分析工具库(VBA函数)
然后数据输入在a1
在b1输入
="%"&DEC2HEX(CODE(A1))
一定要先加在分析工具,否则出错
另外一次只能转换1个汉字
输入多个也只转换第一个字
如果不想加载数据分析工具
可以这样
数据输入在a1,比如 重
b1输入
="%"&LOOKUP(INT(CODE(A1) /4096),{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15;0,1,2,3,4,5,6,7,8,9,"A","B","C","D","E","F"})&LOOKUP(INT(MOD(CODE(A1),4096)/256),{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15;0,1,2,3,4,5,6,7,8,9,"A","B","C","D","E","F"})&LOOKUP(INT(MOD(MOD(CODE(A1),4096),256)/16),{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15;0,1,2,3,4,5,6,7,8,9,"A","B","C","D","E","F"})&LOOKUP(MOD(MOD(MOD(CODE(A1),4096),256),16),{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15;0,1,2,3,4,5,6,7,8,9,"A","B","C","D","E","F"})
结果是 %D6D8
其实就是10进制转换为16进制了
编码GB2312-80
2.GB2312-80,GBK,GB18030-2000 汉字字符集
其实解决 JAVA 程序中的汉字编码问题的方法往往很简单,但理解其背后的原因,定位问题,还需要了解现有的汉字编码和编码转换。
GB2312-80 是在国内计算机汉字信息技术发展初始阶段制定的,其中包含了大部分常用的一、二级汉字,和 9 区的符号。该字符集是几乎所有的中文系统和国际化的软件都支持的中文字符集,这也是最基本的中文字符集。其编码范围是高位0xa1-0xfe,低位也是 0xa1-0xfe;汉字从 0xb0a1 开始,结束于 0xf7fe;
GBK 是 GB2312-80 的扩展,是向上兼容的。它包含了 20902 个汉字,其编码范围是 0x8140-0xfefe,剔除高位 0x80 的字位。其所有字符都可以一对一映射到 Unicode 2.0,也就是说 JAVA 实际上提供了 GBK 字符集的支持。这是现阶段 Windows 和其它一些中文操作系统的缺省字符集,但并不是所有的国际化软件都支持该字符集,感觉是他们并不完全知道 GBK 是怎么回事。值得注意的是它不是国家标准,而只是规范。随着 GB18030-2000国标的发布,它将在不久的将来完成它的历史使命。
GB18030-2000(GBK2K) 在 GBK 的基础上进一步扩展了汉字,增加了藏、蒙等少数民族的字形。GBK2K 从根本上解决了字位不够,字形不足的问题。它有几个特点:
●它并没有确定所有的字形,只是规定了编码范围,留待以后扩充。
●编码是变长的,其二字节部分与 GBK 兼容;四字节部分是扩充的字形、字位,其编码范围是首字节 0x81-0xfe、二字节0x30-0x39、三字节 0x81-0xfe、四字节0x30-0x39。
●它的推广是分阶段的,首先要求实现的是能够完全映射到 Unicode 3.0 标准的所有字形。
●它是国家标准,是强制性的。
现在还没有任何一个操作系统或软件实现了 GBK2K 的支持,这是现阶段和将来汉化的工作内容。
汉字GB2312怎么转换
是不是采用GB2312是由你的系统环境变量或IDE决定的,不是C语言决定的。
GB2312是一种字符集 C中的汉字也可以是UTF8或其它字符集编码
不明白你“得到汉字字符串”是什么意思,char str[]="中国"; 本身就是字符串啊!
【版权与免责声明】如发现内容存在版权问题,烦请提供相关信息发邮件至 lnkj@3173.top ,我们将及时沟通与处理。 本站内容除了3117站长服务平台( www.3117.cn )原创外,其它均为网友转载内容,涉及言论、版权与本站无关。