如题。
刚刚分别用char数组和String数组(因为要替换多个字符,所以用了数组)来替换一个UTF-8编码的String,然后输出成UTF-8的文件,结果那些替换了的字符都成了问号。

解决方案 »

  1.   

    发觉好像不是char或String编码的问题,而是java不能正确处理特殊字符的问题。把包含特殊字符的java文件关闭后再打开,那些特殊字符就变成问号了。把这些特殊字符直接赋给一个String,然后在JTextArea中输出也变成了问号。请问怎么处理
      

  2.   

    字符都成了问号,是因为那是ASCII码
      

  3.   

    你还用什么String数组嘛!一个Char数组就是一个String.
    String s=new String("哈哈哈哈","UTF-8");
      

  4.   

    byte[] b=new String("哈哈哈哈").getBytes("UTF-8");反正这些你要注意一点啊.
      

  5.   

    char数组和String根本不存在编码问题,固定用unicode。
    只有把string转化为byte流的时候有编码的问题
      

  6.   

    用数组是因为有多个字符要替换(是每个字符分别替换成另外一个),而不是替换一个String。mysticality(影子传说)“Java内部都是unicode处理滴”,但源文件好像是ANSI的,保存不了一些特殊字符。你试试在java中输出一些非中文的UTF特殊字符看看。比如\u0254,你不用转义直接输出看看。我的问题最后用转义字符解决了,不过很麻烦。java虽然支持UTF-8,但源文件却是ANSI的,那怎么保存UTF-8特殊字符啊。真的很奇怪。