汉字ascii码转换软件 汉字ascii码转换器
摘要:怎样用C语言实现汉字和ASCII码到UNICODE码的转换? 用MultiByteToWideChar和WideCharToMultiByte可以做到编码的转换。1 MultiByteToWideC...
发布日期:2020-09-30怎样用C语言实现汉字和ASCII码到UNICODE码的转换?
用MultiByteToWideChar和WideCharToMultiByte可以做到编码的转换。
1. MultiByteToWideChar是一个windows API 函数,该函数映射一个字符串到一个宽字符(unicode)的字符串。
函数原型:int MultiByteToWideChar( UINT CodePage,DWORD dwFlags,LPCSTR lpMultiByteStr,int cchMultiByte,LPWSTR lpWideCharStr,int cchWideChar); 参数:CodePage:指定执行转换的字符集,这个参数可以为系统已安装或有效的任何字符集所给定的值。
你也可以指定其为下面的任意一值:CP_ACP:ANSI字符集;CP_MACCP:Macintosh代码页;CP_OEMCP:OEM代码页;CP_SYMBOL:符号字符集(42);CP_THREAD_ACP:当前线程ANSI代码页;CP_UTF7:使用UTF-7转换;CP_UTF8:使用UTF-8转换。
dwFlags:一组位标记用以指出是否未转换成预作或宽字符(若组合形式存在),是否使用象形文字替代控制字符,以及如何处理无效字符。
你可以指定下面是标记常量的组合,含义如下:MB_PRECOMPOSED:通常使用预作字符——就是说,由一个基本字符和一个非空字符组成的字符只有一个单一的字符值。
这是缺省的转换选择。
不能与 MB_COMPOSITE值一起使用。
MB_COMPOSITE:通常使用组合字符——就是说,由一个基本字符和一个非空字符组成的字符分别有不同的字符值。
不能与MB_PRECOMPOSED值一起使用。
MB_ERR_INVALID_CHARS:如果函数遇到无效的输入字符,它将运行失败,且GetLastErro返回ERROR_NO_UNICODE_TRANSLATION值。
MB_USEGLYPHCHARS:使用象形文字替代控制字符。
组合字符由一个基础字符和一个非空字符构成,每一个都有不同的字符值。
每个预作字符都有单一的字符值给基础/非空字符的组成。
在字符è中,e就是基础字符,而重音符标记就是非空字符。
函数的缺省动作是转换成预作的形式。
如果预作的形式不存在,函数将尝试转换成组合形式。
标记MB_PRECOMPOSED和MB_COMPOSITE是互斥的,而标记MB_USEGLYPHCHARS和MB_ERR_INVALID_CHARS则不管其它标记如何都可以设置。
lpMultiByteStr:指向将被转换字符串的字符。
cchMultiByte:指定由参数lpMultiByteStr指向的字符串中字节的个数。
如果lpMultiByteStr指定的字符串以空字符终止,可以设置为-1(如果字符串不是以空字符中止,设置为-1可能失败,可能成功),此参数设置为0函数将失败。
lpWideCharStr:指向接收被转换字符串的缓冲区。
cchWideChar:指定由参数lpWideCharStr指向的缓冲区的宽字符个数。
若此值为零,函数返回缓冲区所必需的宽字符数,在这种情况下,lpWideCharStr中的缓冲区不被使用。
返回值:如果函数运行成功,并且cchWideChar不为零,返回值是由lpWideCharStr指向的缓冲区中写入的宽字符数;如果函数运行成功,并且cchWideChar为零,返回值是接收到待转换字符串的缓冲区所需求的宽字符数大小。
如果函数运行失败,返回值为零。
若想获得更多错误信息,请调用GetLastError函数。
它可以返回下面所列错误代码:ERROR_INSUFFICIENT_BUFFER;ERROR_INVALID_FLAGS;ERROR_INVALID_PARAMETER;ERROR_NO_UNICODE_TRANSLATION。
2. WideCharToMultiByte,该函数映射一个unicode字符串到一个多字节字符串。
函数原型:int WideCharToMultiByte( UINT CodePage, //指定执行转换的代码页 DWORD dwFlags, //允许你进行额外的控制,它会影响使用了读音符号(比如重音)的字符 LPCWSTR lpWideCharStr, //指定要转换为宽字节字符串的缓冲区 int cchWideChar, //指定由参数lpWideCharStr指向的缓冲区的字符个数 LPSTR lpMultiByteStr, //指向接收被转换字符串的缓冲区 int cchMultiByte, //指定由参数lpMultiByteStr指向的缓冲区最大值 LPCSTR lpDefaultChar, //遇到一个不能转换的宽字符,函数便会使用pDefaultChar参数指向的字符 LPBOOL pfUsedDefaultChar //至少有一个字符不能转换为其多字节形式,函数就会把这个变量设为TRUE); 参数:CodePage:指定执行转换的代码页,这个参数可以为系统已安装或有效的任何代码页所给定的值。
你也可以指定其为下面的任意一值:CP_ACP:ANSI代码页;CP_MACCP:Macintosh代码页;CP_OEMCP:OEM代码页;CP_SYMBOL:符号代码页(42);CP_THREAD_ACP:当前线程ANSI代码页;CP_UTF7:使用UTF-7转换;CP_UTF8:使用UTF-8转换 返回值:如果函数运行成功,并且cchMultiByte不为零,返回值是由 lpMultiByteStr指向的缓冲区中写入的字节数;如果函数运行成功,并且cchMultiByte为零,返回值是接收到待转换字符串的缓冲区所必需的字节数。
如果函数运行失败,返回值为零。
若想获得更多错误信息,请调用GetLastError函数。
它可以返回下面所列错误代码:ERROR_INSUFFICIENT_BJFFER;ERROR_INVALID_FLAGS;ERROR_INVALID_PARAMETER;ERROR_NO_UNICODE_TRANSLATION。
注意:指针lpMultiByteStr和lpWideCharStr必须不一样。
如果一样,函数将失败,GetLastError将返回ERROR_INVALID_...
汉字的ASCII码是怎样转换成十进制数字?
汉字不能表示成ASCII码,简体汉字一般是用GB2312存储的,占用两个char位置。
举例如下main(){char chn[3];scanf("%s",chn); //这里输入一个汉字printf("%d %d\n",chn[0]&0xFF,chn[1]&0xFF);//输出对应的数字,与0xff做且运算是为了保证输出正数return 0;}
用VB把字符转换为ASCII ascii转换为字符
可使用Asc 函数将字符转换为ASCII,使用Chr 函数将ASCII转换为字符。
Asc 函数,返回一个 Integer,代表字符串中首字母的字符代码。
Asc 函数示例本示例使用 Asc 函数返回字符串首字母的字符值(ASCII 值)。
Dim MyNumberMyNumber = Asc("A") " 返回 65。
MyNumber = Asc("a") " 返回 97。
MyNumber = Asc("字符") " 返回 -10282。
Chr 函数,返回 String,其中包含有与指定的字符代码相关的字符 。
Chr 函数示例本示例使用 Chr 函数来返回指定字符码所代表的字符。
Dim MyCharMyChar = Chr(65) " 返回 A。
MyChar = Chr(97) " 返回 a。
MyChar = Chr(62) " 返回 >。
MyChar = Chr(-18437) " 返回 符。
ascii码转区位码 汉字的内码可轻而易举的转为区位码. 但是字母的区位...
ascii 从惊叹号起到波浪号止(0x21 到 0x7e) 用公式:int ascii,qw;qw = ascii - 0x21 + 301;printf("%04d",qw);其它码汉字可能不含。
或要自己建对应表(用两列数组。
例如空白(0x20) qw=0101).ascii $ 号 用上面公式得 人民币 羊号,ascii波浪号 变 平线。
要自己去找汉字$ 号,汉字波浪号,放入对应表。
(也许汉字区位码不含)
ASCII码和汉字编码字符 什么东西
ASCII码:美国(国家)信息交换标准(代)码,一种使用7个或8个二进制位进行编码的方案,最多可以给256个字符(包括字母、数字、标点符号、控制字符及其他符号)分配(或指定)数值。
ASCII码于1968年提出,用于在不同计算机硬件和软件系统中实现数据传输标准化,在大多数的小型机和全部的个人计算机都使用此码。
ASCII码划分为两个集合:128个字符的标准ASCII码和128个字符的扩充ASCII码。
每个汉字有个二进制编码,叫汉字国标码。
在我国汉字代码标准GB2312-80中有6763个常用汉字规定了二进制编码。
每个汉字使用2个字节。
GB2312-80 GB2312将代码表分为94个区,对应第一字节;每个区94个位,对应第二字节,两个字节的值分别为区号值和位号值加32(2OH),因此也称为区位码。
01-09区为符号、数字区,16-87区为汉字区,10-15区、88-94区是有待进一步标准化的空白区。
GB2312将收录的汉字分成两级:第一级是常用汉字计 3755个,置于16-55区,按汉语拼音字母/笔形顺序排列;第二级汉字是次常用汉字计3008个,置于56-87区,按部首/笔画顺序排列。
故而 GB2312最多能表示6763个汉字。
...
美国信息交换代码ascii共( ) 个字符
ASCII码一共有256个字符,其中前128个字符是常用字符。
一般需要记住几个重要的,比如:space(空格)是32,0是48,A是65,a是97。
这几个经常会用到。
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。
它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。
请注意,ASCII是American Standard Code for Information Interchange缩写,而不是ASC2,有很多人在这个地方产生误解。
电脑是如何将字母转换成汉字的?
影响所及,使用量渐见普及。
“国家标准信息交换用汉字编码”(GB2312-80标准),在中国大陆广泛使用是靠国标码国标码 开放分类: 电脑、汉字。
国际码是二字节码, 用两个七位二进制数编码表示一个汉字;输出设备来实现的, 有时还需要软件来参与这种转换过程。
这个阶段的汉字代码称为字形码,“0711”代表“Й”(俄文)、字源即GB国标码:中文内码之一。
目前国标码收入6763个汉字, 其中一级汉字(最常用)3755个, 二级汉字3008个,后两位叫做位码,用以显示和打印输出。
字符代码化是指用户从键盘上输入代表某个汉字的编码。
我们把采用不同的编码系统以代表汉字进行输入的方案(如数字码、拼音码和字形码),存储在计算机内部的机内码也必须经转换后才能恢复汉字的“本来面目”。
这种转换通常是由计算机的输入/,它的前两位叫做区码, 另外还包括682个西文字符、图符: 一级汉字 16-55区 二级汉字 56-87区 三级汉字 1-9区 空闲未用 10-15区 通常,在DOS下的各汉字系统中。
汉字库分布情况如下。
例如“巧”字的代码是39H 41H, 在机内形式如下,“8150”代表“楮”字,这些都是汉字: 0 1 1 1 0 0 1 1 第一字节 0 0 0 0 0 1 第二字节 在计算机内部,汉字编码和西文编码是共存的,如何区分它们是个很重要的问题,“0949”代表“┭”(制表符)。
在区位码中,01-09区为特殊字符,10-55区为一级汉字(3755个最常用的汉字,按拼音字母的次序排列),56-87区为二级汉字(3008个汉字,按部首次序排列)、希腊字母等,因为对不同的信息有不同的处理方式。
方法之一是对于二字节的国标码,将二个字节的最高位都置成“1”,简称国标码,称为汉字的输入法,区位码、五笔字型码、拼音码、智能ABC、微软拼音输入法等都是其中的具体代表。
汉字通过编码输入计算机后,在其后的处理过程中,不同阶段使用不同的代码,首先通过键盘管理程序将接收到的输入编码转换为0和1构成的机内码,实现计算机的存储,用区位码还可以很轻松地输入特殊符号。
国标码是指1980年中国制定的用于不同的具有汉字处理功能的计算机系统间交换汉字信息时使用的编码、加工和传输处理。
区位码:1980年,为了使每一个汉字有一个全国统一的代码,我国颁布了第一个汉字编码 的国家标准: GB2312-80《信息交换用汉字编码字符集》基本集,这个字符集是我国中文信息处理技术的发展基础,也是目前国内所有汉字系统的统一标准。
国标码是一个四位十六进制数,区位码是一个四位的十进制数,每个国标码或区位码都对应着一个唯一的汉字或符号,但因为十六进制数我们很少用到,常使用于录入特殊符号,如制表符,所以大家常用的是区位码,同时按Alt键和F1键即可调用区位码输入方法。
而在Windows中常用Ctrl+空格键和Ctrl+Shift键调出区位码。
如“2901”代表“健”字,“4582”代表“万”字, 而ASCII码所用字节最高位保持“0”,然后由软件(或硬件)根据字节最高位来作出判断, 在区位码汉字输入方法中,汉字编码无重码,在熟练掌握汉字的区位码后,但若想记忆住全部区位码是相当困难的,录入汉字的速度是很快的,代表中文简化字,比如,“0189”代表“※”(符号),“0528”代表“ゼ”(日本语)。
同样