我写的程序显示不了汉字

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

我自己的程序printf("输出汉字");出来是乱码
...全文
370 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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编码。

有什么办法解决?

23,217

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧