返回信息流在linux下写的一个测试代码如下:
public class test
{
public static void main(String args[])
{
String s ="感谢国家";
int i = s.indexOf("国");
System.out.println(s);
System.out.println(i);
}
}
最后输出情况:
第一个是乱吗
i为0
出现问题的可能原因:
这段代码所在的java源代码文件编码是ISO-8859
现在遇到的麻烦是我不能更改源代码文件的编码格式,想得到正确的结果,如何解决?
这问题搞得我心力交瘁。[ema1]
这是一条镜像帖。来源:北邮人论坛 / java / #18593同步于 2011/6/1
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
求助:java中文编码问题[解决]
bupo
2011/6/1镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
Properties pps = System.getProperties();
pps.list(System.out);
执行下这两句
把打印出来的东西发来看看
【 在 bupo (小松) 的大作中提到: 】
: 在linux下写的一个测试代码如下:
: public class test
: {
: ...................
哦,这个要import java.util.Properties;
【 在 buptlong (楚|火属性的小龙|八卦帮之山火贲) 的大作中提到: 】
: Properties pps = System.getProperties();
: pps.list(System.out);
: 执行下这两句
: ...................
【 在 buptlong 的大作中提到: 】
: 哦,这个要import java.util.Properties;
: 【 在 buptlong (楚|火属性的小龙|八卦帮之山火贲) 的大作中提到: 】
: : Properties pps = System.getProperties();
: ...................
-- listing properties --
java.runtime.name=Java(TM) SE Runtime Environment
sun.boot.library.path=/usr/java/jre/lib/i386
java.vm.version=17.1-b03
java.vm.vendor=Sun Microsystems Inc.
java.vendor.url=http://java.sun.com/
path.separator=:
java.vm.name=Java HotSpot(TM) Server VM
file.encoding.pkg=sun.io
user.country=CN
sun.java.launcher=SUN_STANDARD
sun.os.patch.level=unknown
java.vm.specification.name=Java Virtual Machine Specification
user.dir=/home/bupo/桌面
java.runtime.version=1.6.0_22-b04
java.awt.graphicsenv=sun.awt.X11GraphicsEnvironment
java.endorsed.dirs=/usr/java/jre/lib/endorsed
os.arch=i386
java.io.tmpdir=/tmp
line.separator=
java.vm.specification.vendor=Sun Microsystems Inc.
os.name=Linux
sun.jnu.encoding=UTF-8
java.library.path=/usr/java/jre/lib/i386/server:/usr/ja...
java.specification.name=Java Platform API Specification
java.class.version=50.0
sun.management.compiler=HotSpot Tiered Compilers
os.version=2.6.32-32-generic
user.home=/home/bupo
user.timezone=
java.awt.printerjob=sun.print.PSPrinterJob
file.encoding=UTF-8
java.specification.version=1.6
user.name=bupo
java.class.path=:/usr/java/lib:/usr/java/jre/lib:/usr...
java.vm.specification.version=1.0
sun.arch.data.model=32
java.home=/usr/java/jre
java.specification.vendor=Sun Microsystems Inc.
user.language=zh
java.vm.info=mixed mode
java.version=1.6.0_22
java.ext.dirs=/usr/java/jre/lib/ext:/usr/java/packa...
sun.boot.class.path=/usr/java/jre/lib/resources.jar:/usr/...
java.vendor=Sun Microsystems Inc.
file.separator=/
java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport...
sun.cpu.endian=little
sun.io.unicode.encoding=UnicodeLittle
sun.desktop=gnome
sun.cpu.isalist=
这是输出
编译的时候指定一下源文件编码格式试试
【 在 bupo (小松) 的大作中提到: 】
: 在linux下写的一个测试代码如下:
: public class test
: {
: ...................
恩
javac -encoding ISO-8859 test.java
【 在 ox (小贝) 的大作中提到: 】
: 编译的时候指定一下源文件编码格式试试
【 在 buptlong 的大作中提到: 】
: 恩
: javac -encoding ISO-8859 test.java
: 【 在 ox (小贝) 的大作中提到: 】
: ...................
错误:不支持的编码: ISO-8859
我运行file命令查看test.java文件的编码结果是:
test.java: ISO-8859 Java program text
用javac -encoding gbk test.java
就ok了。
谢了