import java.io.*;
class   test
{
public static void main(String[] args){
  String content = "corr_name=\"福莱特公司\" cust";
  System.out.println(content);
      FileWriter fw = null;
      try
      {
        fw = new FileWriter("D:/test.xml"); //建立FileWriter对象,并实例化fw
        byte dbbyte1[] = content.getBytes("UTF-8");
        String content1 = null;
        content1 = new String(dbbyte1,"UTF-8");
        System.out.print(content1.getBytes().length); //向控制台输出内容
        fw.write(content1); //向一个文本txt文件输出内容
        fw.close();
        }
      catch (IOException ex) {
      }
}}
改了一行,String构造时要选编码方式

解决方案 »

  1.   

    byte dbbyte1[] = content.getBytes("UTF-8");
                  String content1 = null;
                  content1 = new String(dbbyte1);
                  System.out.print(content1.getBytes().length);
    上面的删掉,不要转码就OK了
      

  2.   

    搞不明白你为什么要转码,UTF-8是3个字符的特殊编码,你的字符串中间是不是有什么全角的字符
      

  3.   

    utf-8并非字符集编码本身,而是unicode编码的存储或传输的串行化“格式”。utf-8针对不同的unicode编码段采取不同字节数的编码格式,对于utf-8而言,不同的字符编码格式占用的字节数是不等长的,记得其中ascii段的字符都占用一个字节,部分特殊符号和字符占用两个字节,汉字或统汉字或其它东亚字符等都占用三个字节,不能一概而论。具体细节请参考unicode和utf规范。
      

  4.   

    楼主应该将输出流的编码格式设置为utf-8,而非“content”本身。