社区
C语言
帖子详情
求教,汉字与ascii码之间的相互转换,急!!
ghaiyang
2003-08-11 02:05:48
给定一个字符串,可能包含汉字,如何判定其中的任意一个字符是否是汉字,
如果是,如何实现汉字与ascii码之间的相互转换
...全文
945
10
打赏
收藏
求教,汉字与ascii码之间的相互转换,急!!
给定一个字符串,可能包含汉字,如何判定其中的任意一个字符是否是汉字, 如果是,如何实现汉字与ascii码之间的相互转换
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zzsxqzzsxq3000
2003-08-11
打赏
举报
回复
不知道楼主是用来干什么用的,如果单纯判断是否汉字倒有很多方法,至于汉字和ascii转换我感觉不能吧,因为汉字是两个字节的。下面写了一段,不知道能否帮的上楼主。
#include <stdio.h>
#include <string.h>
void main()
{
char str[30] = "lkj喊oiul";
int strLen,i;
char ch;
strLen = strlen(str);
for(i=0;i<strLen;i++)
{
ch = str[i];
if(ch & 0x80)
printf("%c",ch);
}
}
风之子赛拉飞尔
2003-08-11
打赏
举报
回复
得到汉字区位码(GBK内码)的方法:
#include <wchar.h>
#include <wctype.h>
……………………
wchar_t c = '汉';
unsigned int i = c;
luckysky
2003-08-11
打赏
举报
回复
为汉字还是为ASC码是判断当前字节的最高位是1还是0,如果要是进行这样的简单转换的化,只要把最高位进行相对应设置一下就可以了。不过根据楼主的意思好像不是这么样的,汉字是2个字节而ASC码为1个字节,所以不好进行转换的。
lth_81
2003-08-11
打赏
举报
回复
啊,才一会儿没来就这么多人了啊。刚才在网上看到的资料表示,你的问题无解。
汉字不能转换为ascii。
汉字有两个部分组成,前半部分的为区内码,后半部分未位内码。区内码=160+区码,为内码=160+位码,因此可以通过这个方法获得汉字的区位码。通过区位码,可以获得字模,来修改汉字的字体吧。
^_^
lengnuan
2003-08-11
打赏
举报
回复
参考这个吧:
http://www.china-askpro.com/msg38/qa05.shtml
cdocument
2003-08-11
打赏
举报
回复
如果都是可见字符的话,这个问题是可以解决的。
因为可见字符的范围是0-127,而汉字是由连续两个大于127的数字构成(也就是其高八位和低八位的数值范围)。
AceHuang
2003-08-11
打赏
举报
回复
你的汉字应该有范围吧,如果是GB2312的,你可以看看它的编码规则,然后进行判断,楼上的老兄已经说的很明白了,一般来说,汉字的第一个字节是大于128的。
fwinfwin
2003-08-11
打赏
举报
回复
汉字可以使用ascii码
一般汉字由两个ascii码组成,而且两个字节都是1*******,就是为128~256的字符,
如果在有汉字支持的环境可以正常输出,不然就显示为128-256的扩展ascii字符.
一般带汉字的字符串,如果有两个紧临大于128的ascii码,那么应该是一个汉字.
cdocument
2003-08-11
打赏
举报
回复
首先要说,汉字不能转换为ascii码。原因不是因为ascii有限,而是因为ascii码是一个字节表示,范围是0-255。而汉字至少需要两个字节来表示。
一般情况下汉字和一个数字来对应(用数据库),也就是常说的码表。比如我用数字“123456”表示了汉字“来”,你可以用win98下面的输入法生成器来反编译任一输入法的码表文件,也就是*.mb文件,你可以看看其关系。
再来说说你的问题:个人觉得比较难,比如以下字符串“sdfrf123汉yeit394”,出了那个汉字以外其他的字符都是用一个字节来表示的。而汉是用两个字节来表示,判断两个字节还是一个字节将会是一个无法逾越的障碍。
swimmer2000
2003-08-11
打赏
举报
回复
应该是一个汉字不能转换成ascii码,因为ascii码很有限,没办法表示汉字,应该用16位编码。
数据处理救星降世Power Query
0/ Excel数据处理新利器来了,准备好了吗?1/ 比网红函数VLOOKUP还全面的功能。——查(查询)2/ 取其精华,去其糟粕。——筛(筛选)3/ 拆分就像同学会,拆散一对是一对。——拆(拆分)4/ 天下大势,合久必分,分久必合。——合(合并)5/ 隔空取物,犹如探囊取物——提(提取)6/ 百转千回后的峰回路转。——转(
转换
)7/ 它判断真假的唯一标准。——判(判断)8/ 人以群分,物以类聚。——聚(聚合)9/ 我自己的难题自己造函数,不
求教
别人。——技法(自定义函数)
C语言对字符进行加密
3、输入的是英文字符的话,直接加3就可以,但是如果是中文字符的话,如果直接高位和地位加3也可以,但是解密的时候就有一个不确定的存在,因为中文字符的ascii编码是有0xfe这样的存在,加上3的话就到时候还原就变得不确定。输入的是英文字符的话,直接加3就可以,但是如果是中文字符的话,如果直接高位和地位加3也可以,但是解密的时候就有一个不确定的存在,因为中文字符的ascii编码是有0xfe这样的存在,加上3的话就到时候还原就变得不确定。除以26的目的就是当超过26后,通过求余数的方式折回头部去。
python发送邮件廖雪峰_
求教
!关于 Python3 SMTP 发送邮件的编码问题
最近在跟着学习廖雪峰的 Python 教程,到发送邮件这一章出现了编码问题,搜索一直得不到解决,特来求助广大 V 友。以下是代码部分:from email.mime.text import MIMETextmsg = MIMEText('hello, send by Python...', 'plain', 'utf-8')# 输入 Email 地址和口令:from_addr = input('F...
字符编码笔记:ASCII,Unicode和UTF-8(转)
字符编码笔记:ASCII,Unicode和UTF-8(转) 作者: 阮一峰 日期: 2007年10月28日 今天中午,我突然想搞清楚Unicode和UTF-8
之间
的关系,于是就开始在网上查资料。 结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步搞清楚。 下面就是我的笔记,主要用来整理自己的思路。但是,我尽量试图写得通俗易懂,希望能对其他朋友有用。毕竟,字符编码是计算机技术的
常用字符集编码详解
常用字符集编码详解ASCII
ASCII码
是7位编码,编码范围是0x00-0x7F。ASCII字符集包括英文字母、阿拉伯数字和标点符号等字符。其中0x00-0x20和0x7F共33个控制字符。 只支持
ASCII码
的系统会忽略每个字节的最高位,只认为低7位是有效位。HZ字符编码就是早期为了在只支持7位ASCII系统中传输中文而设计的编码。早期很多邮件系统也只支持ASCII编码,为了传
C语言
69,373
社区成员
243,079
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章