汉字编码转换在线(汉字编码转换在线生成器)

2023-02-28 10:13:36 摩斯密码知识 思思

代码转换成中文

你这两个代码是"读书"的区位码 (2233 4273)

用Replace Pioneer转换,自己动手,丰衣足食,而且灵活。

下面举例说明怎样用Replace Pioneer把汉字“读书”,转换成代码(2233 4273),然后再转换回汉字。

汉字转编码:

1. ctrl-o打开待转换的文本文件(纯汉字)

2. ctrl-h打开替换窗口

* 在Search for Pattern输入一个点“.”,不带双引号。

* 在Replace with Pattern输入:

${match}join("",map(calc(byte2num($_)-160), split(//,encode('gbk',$match))) )

3. 点击Replace,完成!

编码转汉字:

1. ctrl-o打开待转换的文本文件(4位一组的纯数字)

2. ctrl-h打开替换窗口

* 在Search for Pattern输入(\d\d)(\d\d)表示4位编码

* 在Replace with Pattern输入:

decode('gbk',num2byte(160+$1).num2byte(160+$2))

3. 点击Replace,完成!

汉字编码转换在线(汉字编码转换在线生成器) 第1张

ucs2到gbk转码

汉字不同编码转换的问题 UCS2转码的心得

看到很多朋友都对汉字的unicode编码有问题, 还需要什么”unicode汉字对应表”...

一直想回贴子,但太忙(包括忙着从论坛中索取自己需要的东西).

其实汉字的编码转换很简单,我相信C++也应该有相应的函数.希望这些代码对用Java的朋友有帮助.

/*

* UnicodeTest.java

*

* Created on July 29, 2003, 12:59 PM

*/

/**

*

* @author abc

* @version

*/

public class UnicodeTest

{

public static void main(String args[])

{

UnicodeTest UT = new UnicodeTest();

UT.test1();

}

public void test1()

{

String str = "测试信息abc123";

try

{

byte[] b = str.getBytes("GBK");

System.out.println(str + " -(GBK)编码: " + bytesToHexStr(b));

System.out.println("");

str = new String(b, "GBK");

System.out.println("从GBK编码 " + bytesToHexStr(b) + " 重新转换为字串: " + str);

System.out.println("");

b = str.getBytes("UnicodeBigUnmarked");

System.out.println(str + " -(UCS2)编码: " + bytesToHexStr(b));

System.out.println("");

str = new String(b, "UnicodeBigUnmarked");

System.out.println("从(UCS2)编码 " + bytesToHexStr(b) + " 重新转换为字串: " + str);

System.out.println("");

b = str.getBytes("ASCII");

System.out.println(str + " -(ASCII)编码: " + bytesToHexStr(b));

System.out.println("");

}

catch(Exception e){}

}

private String bytesToHexStr(byte[] b)

{

if (b == null) return "";

StringBuffer strBuffer = new StringBuffer(b.length * 3);

for(int i = 0; i b.length; i++)

{

strBuffer.append(Integer.toHexString(b 0xff));

strBuffer.append(" ");

}

return strBuffer.toString();

}

}

运行此小程序的输出结果是:

测试信息abc123 -(GBK)编码: b2 e2 ca d4 d0 c5 cf a2 61 62 63 31 32 33

从GBK编码 b2 e2 ca d4 d0 c5 cf a2 61 62 63 31 32 33 重新转换为字串: 测试信息abc123

测试信息abc123 -(UCS2)编码: 6d 4b 8b d5 4f e1 60 6f 0 61 0 62 0 63 0 31 0 32 0 33

从(UCS2)编码 6d 4b 8b d5 4f e1 60 6f 0 61 0 62 0 63 0 31 0 32 0 33 重新转换为字串: 测试信息abc123

测试信息abc123 -(ASCII)编码: 3f 3f 3f 3f 61 62 63 31 32 33

这段时间都在做联通的SP网关程序,原来我是做web应用的,对数据库之类的java编程比较熟悉。原来也从来没有接触过短信网关方面的系统设计和编程。在这个过程中碰到了几个比较棘手的问题,UCS2的转码就是其中一个。

刚开始我们公司的业务没有涉及到中文信息,所以没有注意这个问题,用户只需要发送字母和数字就可以了,但是最近几天我在数据库中发现了一些乱码,Messagecoding=8,我猜测可能和用户手机的输入法有关系,即使是阿拉伯数字也有双字节的,比如“8”和“8”。

下面这段代码是底层的API:

.........(read bytes from input)

//获取消息编码

MessageCoding = bodybytes[44];

//获取短消息内容的长度

SGIP_Command.BytesCopy(bodybytes, abyte0, 45, 48, 0);

MessageLength = SGIP_Command.Bytes4ToInt(abyte0);

//创建一个内容长度的Byte

MessageByte = new byte[MessageLength];

//将Message copy 到 MessageByte 中

SGIP_Command.BytesCopy(bodybytes, MessageByte, 49, (49 + MessageLength) - 1,0);

//开始解码转换

if(MessageCoding==8){//如果编码格式为UCS2,就转换成普通的String

try {

MessageContent = new String(MessageByte,"UnicodeBigUnmarked");

} catch (UnsupportedEncodingException e) {

}

}else{

MessageContent = new String(MessageByte);

}

实际上在java中就只需要一句MessageContent = new String(MessageByte,"UnicodeBigUnmarked");就可以转换过来,再保存到数据库中就不会是乱码了。

进行转换后,我还用了另外一个函数把类似“8”这样的GBK编码的阿拉伯数字都转换成了ASCII的数字。这样对业务逻辑有帮助。

还有一点要说明一下,GB2312是一个比较早版本的中文编码格式,GBK是新的中文编码格式,GBK是GB2312的超集,GB2312是GBK的真子集。

我的底层API是使用的英斯克的底层api,不过我修改了英斯克的API几个不完善的地方。希望对碰到和我一样问题的同志有点帮助。

文字怎么转换成GB2312编码

转换方法如下:

以office 2003为例:

开始菜单-Microsoft office- Microsoft office工具- Microsoft office 2003语言设置,将Microsoft office应用程序默认方式的语言设为"中文(简体)"。

使用记事本打开CSV文件,文件-另存为,编码方式选择想要替换成的编码(如gbk)。

保存完毕后,用EXCEL打开这个文件就会正常显示。

汉字机内码在线转换

国标码+8080H = 机内码

所以5031H + 8080H = D0B1H

若某汉字的国标码是5031H,则该汉字的机内码是( D0B1H )。汉字的机内码采用变形国标码,其变换方法为:将国标码的每个字节都加上128,即将两个字节的最高位由0改1,其余7位不变。

若某汉字的国标码是5031H,则该汉字的机内码=国标码+128(十进制)=5031H(十六进制)+128(十进制)=5031H(十六进制)+8080H(十六进制)=D0B1H (十六进制)。

扩展资料:

国标码的机内码为二字节长的代码,它是在相应国标码的每个字节最高位上加“1”,即

汉字机内码=汉字国标码+8080H

例如,上述“啊”字的国标码是3021H,其汉字机内码则是B0A1H。

汉字机内码的基础是汉字国标码。

机内码:为了避免ASCII码和国标码同时使用时产生二义性问题,大部分汉字系统都采用将国标码每个字节高位置1作为汉字机内码。这样既解决了汉字机内码与西文机内码之间的二义性,又使汉字机内码与国标码具有极简单的对应关系。

参考资料来源:百度百科-汉字机内码