最近无聊,在做一个小程序,程序需要生成脚本,就用了FileWriter fileWriter = new FileWriter("C:\\test\\test.ssd");,但是后来发现编码格式要是Unicode的,就改用了 OutputStreamWriter outPutStreamWriter = new OutputStreamWriter(new FileOutputStream("C:\\test\\Test.ssd"),"Unicode");但是生成文件后确是Unicode big endian的,就改用new String来强制转换,但是转换后也不行求助,如何才能让生成的脚本是Unicode的,最好附代码.
解决方案 »
- Executors.newCachedThreadPool();在哪调用?
- 关于ganymed-ssh2读数据被阻塞
- JAVA移位问题
- 请问,怎样能从文本中提取某些固定的信息
- =====================求一正则表达式======================
- CardLayout布局??
- 歌德巴赫猜想
- 如果我装两个jdk( 5.0 and 1.41) 而且都设置环境变量了, 那么编译的时候是哪个jdk?
- 怎么样JDBC访问SQL Server数据库啊?
- 总是出现java.lang.NoSuchMethodError错误,在线等待!~!
- 一段很简单的java代码,看不懂,求帮助
- 关于Properties 的一个困惑
// Charset charset = Charset.forName("UTF-16BE");
// Charset charset = Charset.forName("UTF-16LE");
PrintWriter writer = new PrintWriter(new OutputStreamWriter(new FileOutputStream("..."),charset));BufferedWriter reader = new BufferedReader(new InputStreamReader(new FileInputStream("..."),charset));
new FileOutputStream("C:\\test\\Test.ssd"),"UTF-16LE"
的啊,楼主所说“脚本后缀就倒过来了”是什么意思呢?
UTF-16LE的话,里面的东西乱码了
UTF-16BE的话,里面写不进内容。
自己新建一个文本,将文本格式另存为Unicode发送是没有问题的
用自己写的软件发送的话,编码转不成Unicode,就乱码了
那个程序很奇怪嘛。
都是BE
文字内容:你好
$ hexdump u16.txt
0000000 fffe 604f 7d59
0000006$ hexdump u16be.txt
0000000 604f 7d59
0000004
new FileOutputStream("C:\\test\\Test.ssd"), "UTF-16LE"));
bw.write(0xFEFF);
bw.write(你真正要写的字符串);