• 主页
  • 系统维护与使用
  • 应用程序开发
  • 内核源代码
  • 驱动程序开发
  • CPU和硬件区
  • UNIX文化
  • Solaris
  • Power Linux

我写的程序显示不了汉字

bluesen 2010-12-20 12:01:25
但奇怪ubuntu系统提示汉字正确

我自己的程序printf("输出汉字");出来是乱码
...全文
180 点赞 收藏 20
写回复
20 条回复
samuelo 2010年12月23日
我的linux也是无法显示汉字,UTF-8的编码,改成GB2312也不成。没辙,改系统编码没用,只好改程序,汉字成英文。
回复 点赞
bluesen 2010年12月23日
因为是兼容两个平台的版本,因此就不想做什么转换了。再说长期习惯了在windows下的文本编辑器(别鄙视我),因此我都是在windows下写好代码,然后再用SSH工具拷贝到Linux下make。
我就不明白,为什么ubuntu一类的、号称很好用的产品,就不能做到像windows一样,多种编码的汉字都能够正常显示呢?
回复 点赞
justkk 2010年12月21日
试试
iconv -fISO88591 -tutf-8 your.c > nn.c
然后编译运行nn.c
回复 点赞
手机写程序 2010年12月20日
printf("\r\n输出汉字\r\n");
也不行?
回复 点赞
无知者无谓 2010年12月20日
[Quote=引用 1 楼 willerxu 的回复:]

可能是编码格式不一样导致的。据我了解,linux下能显示的格式为utf-8,printf显示的格式可能不正确,导致乱码。
[/Quote]
还有可能没有安装中文字体,不过这种情况应该是显示方块。
回复 点赞
willerxu 2010年12月20日
可能是编码格式不一样导致的。据我了解,linux下能显示的格式为utf-8,printf显示的格式可能不正确,导致乱码。
回复 点赞
bluesen 2010年12月20日
[Quote=引用 16 楼 lgch123456 的回复:]
vim里面有设置你的输入编码方式 有GB2312 utf-8等 可以自己编辑。你的输入的编码和你的代码编码不一致。另外 你还可以copy你的代码到windows,随便用一个软件更改你的编码方式,如:editplus
[/Quote]

我的就是纯文本格式的C/C++源代码。是将原先在windows环境下运行的程序移植到Linux。
回复 点赞
lgch123456 2010年12月20日
vim里面有设置你的输入编码方式 有GB2312 utf-8等 可以自己编辑。你的输入的编码和你的代码编码不一致。另外 你还可以copy你的代码到windows,随便用一个软件更改你的编码方式,如:editplus
回复 点赞
bluesen 2010年12月20日
[Quote=引用 14 楼 xuexingyang 的回复:]
先看下登录客户端是不是支持,
然后检查系统字体设置
在/etc/sysconfig/i18n
[/Quote]

ubuntu上没这个目录啊
回复 点赞
xuexingyang 2010年12月20日
先看下登录客户端是不是支持,
然后检查系统字体设置
在/etc/sysconfig/i18n
回复 点赞
bluesen 2010年12月20日
[Quote=引用 12 楼 justkk 的回复:]
file your.cpp
看看什么输出信息?
[/Quote]

ISO-8859 C program text
回复 点赞
justkk 2010年12月20日
file your.cpp
看看什么输出信息?
回复 点赞
bluesen 2010年12月20日
如果要转码,太麻烦了,奇怪Linux下的汉字显示居然还是个问题。
如果能有解决办法就最好。没办法只好把提示信息改为英文算了,反正是服务程序,界面也简单。
回复 点赞
luketty 2010年12月20日
Windows上编辑的文本 保存成utf8格式的 或者直接在vi里编辑
回复 点赞
justkk 2010年12月20日
把程序文件的编码格式转换为utf8 ,再编译运行看看
回复 点赞
bluesen 2010年12月20日
奇怪,我重新起了个终端,export LANG=zh_CN.GB2312 也不行了。看来前面误以为行是改了vi的设置造成的。
回复 点赞
bluesen 2010年12月20日
再按justkk的方法变通了一下,用这个可以:
export LANG=zh_CN.GB2312

但命令提示又变成乱码了。看来Unicode和GB2312不能共存。
回复 点赞
bluesen 2010年12月20日
[Quote=引用 5 楼 justkk 的回复:]
export LANG=zh_CN.GBK
然后再执行你的程序,试试
[/Quote]

还是不行,显示的乱码。我把输出重定向到文件,再将文件拷贝到windows下,显示正常。
另外在Ubuntu下,用vi打开源代码,其中的中文也是不能正确显示。
回复 点赞
justkk 2010年12月20日
export LANG=zh_CN.GBK
然后再执行你的程序,试试
回复 点赞
bluesen 2010年12月20日
系统的提示,比如输入一个错误的命令,系统提示:“xxx: 找不到命令”,这个显示正常。
我的程序---是我原先在windows平台的C控制台程序--printf()的内容,应该是GB编码。

有什么办法解决?
回复 点赞
发动态
发帖子
Linux/Unix社区
创建于2007-08-27

7098

社区成员

7.3w+

社区内容

Linux/Unix社区 应用程序开发区
社区公告
暂无公告