免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4126 | 回复: 8
打印 上一主题 下一主题

如何把字符打印出来 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-02-22 10:25 |只看该作者 |倒序浏览
环境英文rh73,我的程序接收到一个UNICODE的变量,我
如何通过PRINTF打印出来

论坛徽章:
0
2 [报告]
发表于 2003-02-22 14:19 |只看该作者

如何把字符打印出来

是英文的吗
直接使用printf 不就行了

UNICODE是由ASCII码前面可以看到,Unicode 中,所有的字符都是 16 位的,包括所有的 7位 ASCII
码都被扩充为 16 位。(注意,高位扩充的是零 \x0,上面显示成空格)。这样的
代码不再属于传统意义上的文本文件。这些代码可以使用我们介绍的 MView
Convert 软件转换成为 GB、BIG5 或其他汉字编码。注意区分转换选择中 UTF-7、
UTF-8 和 Unicode。


转自http://thunder.prohosting.com/~xiaocao/surf/lmdq/luanma16.htm

另外可以在google上使用unicode关键字得到更多unicode的信息

论坛徽章:
0
3 [报告]
发表于 2003-02-22 14:31 |只看该作者

如何把字符打印出来

是要打印中文

论坛徽章:
0
4 [报告]
发表于 2003-02-22 14:33 |只看该作者

如何把字符打印出来

我是要根据接收到的中文进行分析和存储,但我 把接收到的内容存在字符串变量中打印出来是空的

论坛徽章:
0
5 [报告]
发表于 2003-02-22 14:37 |只看该作者

如何把字符打印出来

我转换成GB格式了还是空的,存储GB格式的字符串变量我
用PRINTF出来还是空的,怎么办?

论坛徽章:
0
6 [报告]
发表于 2003-02-22 16:55 |只看该作者

如何把字符打印出来

试试fprintf,printf是fprintf族的一个函数,查一下相关的书。

论坛徽章:
0
7 [报告]
发表于 2003-02-22 19:14 |只看该作者

如何把字符打印出来

把我知道的一些东西说说看吧。
首先,楼主说要打印中文,我不太明白你的意思,是要打印到终端上呢,还是要输出到打印机?我想其实你的程序本身应该没有什么问题,重要的是你的环境变量设置是否正确,通常如果你的终端上要能够显示中文,需要中文字库和正确的环境变量设置,比方说我在linux上的环境变量设置的是LANG=zh_CN.GB18030,这样GBK的中文是能够正确显示的。
其次,对于版主说的UNICODE是16位,不敢苟同。最简单的推理就是16bits肯定不够对所有的中文进行编码,16bits才65535个编码,是远远不够的。何况UNICODE是要对世界上所有的字符进行编码,所以16bits肯定不对。我猜想版主所说的,应该是指Windows上面wchar类型的变量。我曾经作过UTF-8对GB2312和BIG5三者之间的编码转换,我所了解到的UTF-8编码方式从1个字节到4个字节的都有。ASCII字符都是1个字节,而中文GB2312对应的字符在UTF-8中基本上都是3个字节。
嘿嘿,当年曾经作过一个最傻的事情就是判断如果一个词组为6个字节,就当作UTF-8编码,呵呵,导致程序狂占资源,所以印象比较深刻。这里把我知道的说出来,希望大家不要走太多的冤枉路。呵呵,版主不要生气哈。。。

论坛徽章:
0
8 [报告]
发表于 2003-02-24 08:52 |只看该作者

如何把字符打印出来

对于unicode 不是16bit 的有不同见解

可以参考
关于Unicode
http://www.qiliang.net/qt/unicode.html
Unicode是一个16位的字符集,它可以移植到所有主要的计算机平台并且覆盖几乎整个世界。它也是单一地区的;它不包括代码页或者其它让软件很难读写和测试的复杂的东西。现在还没有一个合理的多平台的字符集可以和它竞争。由于以上原因,Trolltech公司从Qt 2.0开始选择Unicode作为它天然的字符集。

UTF-8确实是一个可变长的字符串
可以参考
http://thunder.prohosting.com/~xiaocao/surf/lmdq/luanma16.htm
UTF-8 编码进行了这样的处理:它保持 US-ASCII 字符为 US-ASCII, 而其他编
码要保证高位是 1,在编码序列中还包含了码长信息。UTF-8 是一个不定长度的
编码。这样编码的结果是在编码序列中,所有的 US-ASCII 码原来也一定是 US-
ASCII 码。(具体意义和方法详见上述资料)


如果locale不支持中文的话
那么在控制台上确实不能显示中文(打印出来的是乱码)

打印应该也不行吧
打印也要有中文字库支持的

论坛徽章:
0
9 [报告]
发表于 2003-02-24 16:22 |只看该作者

如何把字符打印出来

精辟。不过我认为这太深了,不如用简单的说明一下就行了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP