对,有。
#define _CONVERSION_USES_THREAD_LOCALE#include <atlbaseh>
#include <atlconvh>
#include <stdioh>
#include <stringh>
int main()
{
USES_CONVERSION;
_acp = CP_ACP;
char buf[3] = {0};
buf[0] = getchar();
buf[1] = getchar();
wchar_t tmpbuf[2] = {0};
tmpbuf[0] = A2W(buf)[0];
_acp = CP_UTF8;
char utf8buf[4];
strcpy(utf8buf, W2A(tmpbuf));
int i = 0;
while(utf8buf[i] != 0)
{
printf("%02x ", (unsigned char)utf8buf[i]);
++i;
}
return 0;
}
如果不是VC60而是新的VC的话是新的写法。
你可以输入一个日进去看看
这个函数,可以用来生成任意字符的16进制码,Unicode和ANSI都支持:
Function GetHex(ByVal Str1 As String, IsANSI As Boolean) As String
Dim b1() As Byte
If IsANSI Then b1 = StrConv(Str1, vbFromUnicode) Else b1 = Str1
Dim s1 As Long, n1 As Long, l1 As Long
l1 = LBound(b1)
n1 = UBound(b1) - l1 + 1
GetHex = Space(n1 2)
For s1 = 1 To n1
Mid(GetHex, s1 + s1 - 1, 2) = Replace(Format(Hex(b1(s1 + l1 - 1)), "@@"), " ", "0")
Next
End Function
使用:
DebugPrint "ANSI码:";GetHex("我们",True)
DebugPrint "Unicode码:";GetHex("我们",False)
显示结果:
ANSI码:CED2C3C7
Unicode码:1162EC4E
上面的是正确结果。你给的“ANSI是 89E43F,unicode是 11623F00”是错的,你随便找一个16进制编辑器验证下吧。两个汉字的ANSI码怎么也都是4字节的不可能是3字节的,Unicode汉字中也不会有“00”
%cd%f8%d5%be%d2%d1%be%ad%b8%c4%b0%e6%a3%ac%c7%eb%b5%e3%bb%f7%c1%b4%bd%d3%c8%a5%d0%c2%cd%f8%d5%be
上代码:
import javautilScanner;public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(Systemin);
Systemoutprintln("请输入汉字:");
String input = scnextLine();
if (inputlength() == 0) {
Systemoutprintln("输入错误");
return;
}
Systemoutprintln("汉字转unicode结果:");
char[] chars = inputtoCharArray();
for (int i = 0; i < charslength; i++) {
String unicode = IntegertoHexString(chars[i]);
if (unicodelength() <= 2) {
// 不足四位前面加0补齐
unicode = "00" + unicode;
}
unicode = "\\u" + unicode;
Systemoutprintln(chars[i] + ": " + unicode);
}
}
}
我们所见的汉字从形体变成电脑的内码:
1)需要汉字编码,anzi bianma汉字编码Chinese character encoding 为汉字设计的一种便于输入计算机的代码。
汉字信息处理系统一般包括编码、输入、存储、编辑、输出和传输。编码是关键。不解决这个问题,汉字就不能进入计算机。
2)计算机中汉字的表示也是用二进制编码,同样是人为编码的。根据应用目的的不同,汉字编码分为外码、交换码、机内码和字形码。
外码(输入码);
交换码(国标码);
机内码;
汉字的字形码;
汉字地址码;
3)符合规范的字符集。如果超出了输入法所支持的字符集,就不能录入计算机。
① GB2312-80字符集,中文名国家标准字符集(GB=GuóBiāo国标)。
② Big-5字符集,中文名大五码,是台湾繁体字的字符集。
③ GBK字符集,中文名国家标准扩展字符集(GB=GuóBiāo国标;K=Kuò扩,即扩展),兼容GB2312-80标准,包含Big-5的繁体字,但是不兼容Big-5字符集编码。
④ 转码软件,Big-5 (台湾繁体字)与GB2312-80 (大陆简体字),编码不相兼容,字符在不同的 *** 作系统中便产生乱码。文本文字的简体与繁体(文字及编码)之间的转换需经转码软件完成。
参考:>
以上就是关于如何将一个汉字用C语言将其转换成Unicode编码最好直接编成UTF-8,是不是vc里面有函数可以直接编求程序全部的内容,包括:如何将一个汉字用C语言将其转换成Unicode编码最好直接编成UTF-8,是不是vc里面有函数可以直接编求程序、求VB将中文字符转换成相应的16进制编码的源代码、中文字怎么 转 gb2312 编码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)