java - 在java中获取UTF8字符集而不是ASCII

标签 java encoding utf-8 character-encoding

我正在创建 ASCII 字符集格式的文本文件。再次阅读时,它
给出 UTF8 字符集。为什么它给出 UTF8 字符集而不是 ASCII?

   public static void fileStreamWriter() throws IOException {
   Charset cs = Charset.forName("US-ASCII");
   System.setProperty("file.encoding", "US-ASCII");
   String text = "ABCDEFGHIJKLMNOP";
   String stCr = new String(text.getBytes());
   Writer writer = new OutputStreamWriter(new 
   FileOutputStream("C:/upload/FItest"), cs);
    try {
        writer.write(stCr);
        writer.flush();
    } finally {
        writer.close();
    }
    }

     public static void readEncodingCharset(String path) throws IOException    

    {
    System.setProperty("file.encoding", "US-ASCII");
    FileInputStream fis = null;
    InputStreamReader isr = null;
    String s;
    try {
        fis = new FileInputStream("C:/upload/FItest");
        isr = new InputStreamReader(fis);
        s = isr.getEncoding(); 
        System.out.println("Charset Encoding type : "+s);           
    } catch (Exception e) {
        e.printStackTrace();
    } finally {            
            fis.close();            
            isr.close();
    }
    }

最佳答案

删除 System.setProperty 行,它们没有用,不会按照您的想法行事。

由于您没有在 InputStreamReader 构造函数中指定编码,因此使用平台默认值,在您的情况下似乎是 UTF-8。将 "US-ASCII" 作为参数添加到 InputStreamReader

InputStreamReader 不会 猜测编码。除非您指定不同,否则它使用平台默认值,并且您应该始终明确指定编码以确保该程序在不同平台上工作相同。

关于java - 在java中获取UTF8字符集而不是ASCII,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32523466/

相关文章:

mysql - utf8_general_ci和utf8_unicode_ci有什么区别?

java - 加载相关实体时实体图被忽略

oracle - 通过 Powershell 向 Oracle 数据库插入数据时,为什么锐音符号会与其基本字母分开?

windows - Silverlight:编码 webClient 流

python - __repr__() 函数的最佳输出类型和编码实践?

php - UTF-8贯穿始终

php - UTF-8贯穿始终

java - 即使我使用 NestedScrollView,ToolBar 也无法彻底滚出屏幕

java - Camel SpringBoot Rest servlet 连接被拒绝(camel 2.22.0)

java - AXIS Web 服务中的 URL