黑马程序员技术交流社区

标题: DOS下utf8文档中有中文时解析出错 [打印本页]

作者: getone    时间: 2014-9-28 21:09
标题: DOS下utf8文档中有中文时解析出错
之前在学习char类型变量时出现一个问题,如果char ch = "中";,编译失败了。按理说char类型是两个字符长度,正好是一个中文的长度,是正确的,但是出错了,出错信息是乱码。之后发现是因为我的文档默认设置成utf8编码格式,而utf8是占3个字符,发现之后我就把文档暂时转换成ansi,编译成功了。
但是后面新建了一个文件,还是默认utf8的,我以为没有char语句就没有问题,但是在注释中加入中文之后,编译失败了,还是乱码,乱码的行数竟然是有中文注释的那一行,明明只是注释,却还是乱码!当我把文件转成ANSI之后,再编译没有问题。
我知道这是DOS的问题了,在网上查了一些,步骤比较繁琐,且还是没有解决问题,希望大能们能帮忙,谢谢!

作者: ζ_____________    时间: 2014-9-28 21:41
是不是你在文件读取的时候出现的问题呢?  不知道是不是你编辑软件的问题,默认保存的是utf-8编码的文件. 如果按你说的是编码的问题,我们是不是可以通过转换流对其进行编码的声明呢?

BufferedReader buf =new BufferedReader(new InputStreamReader(new InputStream(/*文件名*/),"UTF-8"));

这样的话打印到控制台上应该就不会出现乱码了.

作者: getone    时间: 2014-9-30 14:49
ζ_____________ 发表于 2014-9-28 21:41
是不是你在文件读取的时候出现的问题呢?  不知道是不是你编辑软件的问题,默认保存的是utf-8编码的文件. 如 ...

谢谢,已经解决了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2