`
andyliuxs
  • 浏览: 138921 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

【Java】properties中文乱码问题(转)

阅读更多

        【原理解释】
           我们用API操作properties文件,如果获取的属性值是中文,为什么会出现乱码呢?

            我们知道,如果编码(输出)和解码(读入)用的encoding是不一致的有可能会引起中文乱码问题,如果这两种encoding冲突,则你基本上就中奖了。看两个我们熟悉的eclipse提示:
            
            
            
            
           1、假设如果我们创建properties文件用的encoding是GBK,我们写入了中文
           2、Properties文件默认机制是采用ISO8859-1处理
           3、我们用Properties.getProperty(String key)接口读取内容,这是时候得到的是乱码。因为想用ISO8859-1对GBK编码的内容进行解码
           4、我们把用Properties.getProperty(String key)接口读取内容转换为创建properties文件时用的encoding(GBK)不就解决问题了


        【代码示例】 

 1  public   class  PropertiesUtil {
 2       /**
 3       * util class
 4        */
 5       private  PropertiesUtil() {}
 6      
 7       /**
 8       * 指定编码获取properties文件中的属性值(解决中文乱码问题)
 9       * 
10       *  @param  properties   java.util.Properties
11       *  @param  key              属性key
12       *  @return
13        */
14       public   static  String getProperty(Properties properties, String key, String encoding)  throws  UnsupportedEncodingException {
15           // param check
16           if  (properties  ==   null )
17               return   null ;
18          
19           // 如果此时value是中文,则应该是乱码
20          String value  =  properties.getProperty(key);
21           if  (value  ==   null )
22               return   null ;
23          
24           // 编码转换,从ISO8859-1转向指定编码
25          value  =   new  String(value.getBytes( " ISO8859-1 " ), encoding);
26           return  value;
27      }
28  }

      
            如果你的应用创建中使用的系统默认编码,则如下转化:
            PropertiesUtil.getProperty(properties, "TestKey", System.getProperty("file.encoding"));

            PS:java中文乱码的问题会遇到不少,尤其是用字符流的时候。老早之前和乱码做过斗争,经验是要搞清楚产生乱码的基本原理,然后再修理它

分享到:
评论

相关推荐

    JAVA 解决Properties文件保存中文乱码

    总结,解决Java中Properties文件中文乱码问题的关键在于正确指定文件的编码。无论是保存还是读取,都需要确保与文件实际的编码一致。在处理这类问题时,了解和掌握不同的API以及它们的用法是至关重要的,这样才能...

    Java关于中文乱码问题的多种解决方法

    在Java编程中,中文乱码问题是一个常见的困扰,尤其是在处理文件读写、网络传输或数据库操作时。本文将深入探讨几种解决Java中中文乱码问题的方法,并以MyEclipse为开发环境,结合实际示例进行讲解。 1. 文件读写中...

    Java Properties 解决中文乱码和顺序读写.docx

    Java Properties 类是Java标准库中...总之,Java Properties类是Java开发中处理配置文件的利器,通过它的方法可以方便地读取、修改和保存配置信息,尤其在处理包含中文字符的配置时,注意编码问题,确保数据的正确性。

    java properties文件中文转化

    当我们在properties文件中直接使用中文时,Java在读取时可能会出现乱码。为了解决这个问题,我们可以使用两种策略: 1. 文件编码转换:在写入properties文件时,使用支持中文的编码,如UTF-8。在读取时,需要指定...

    JAVA常见中文乱码问题解决方法

    Java编程语言在处理中文字符时可能会遇到乱码问题,这主要源于Java的源代码编码、JVM处理class文件以及不同操作系统、数据库系统之间的编码不一致。本文深入剖析了Java中文问题的根源,并提供了相应的解决方案。 一...

    解决Properties写中文乱码

    然而,当我们在Properties文件中写入中文字符时,常常会遇到乱码问题。这个问题通常由两个主要因素引起:编码格式不匹配和读写过程中的编码转换不当。 首先,Properties文件默认使用ISO-8859-1编码,这是Java的标准...

    eclipse下properties文件中文乱码的解决方案

    在IT开发领域,尤其是使用Eclipse作为集成开发环境(IDE)的开发者,经常会遇到一个令人头疼的问题——Properties文件中的中文字符出现乱码。这一现象不仅影响代码的可读性,还可能造成程序运行错误。本文将深入探讨...

    idea中.properties文件中文显示乱码问题的解决 文件中文乱码1

    总结,解决IntelliJ IDEA中`.properties`文件中文显示乱码的问题,关键在于确保文件编码与IDE设置相匹配,并且可能需要调整IDE的默认编码设置。通过以上步骤,大多数情况下的乱码问题都能得到解决。如果问题依然存在...

    Java读写.properties文件解决中文乱码问题

    本篇文章将深入探讨如何解决Java读写.properties文件时的中文乱码问题。 首先,了解.properties文件的特性。这种文件的默认编码通常是ISO-8859-1,它不支持中文字符。因此,当文件中含有中文时,必须明确指定读写时...

    java插入mysql中文乱码解决

    在使用Java应用程序与MySQL数据库交互的过程中,常常会遇到一个令人头疼的问题:中文字符在存储到数据库时出现乱码现象。这种现象通常发生在使用JDBC(Java Database Connectivity)连接数据库,并进行数据插入操作...

    Java中文乱码浅析及解决方案

    Java 中文乱码问题是一个常见的编程困扰,尤其对于处理中文字符的Java程序而言。这个问题通常源于字符编码的不一致,即不同环节采用的字符编码标准不统一。本文将深入探讨这一问题,并提供相应的解决方案。 首先,...

    Java开发乱码问题解决方法汇总

    Java开发乱码问题解决方法汇总 Java开发中乱码问题是非常常见的问题之一,而解决这些问题需要具备一定的技术知识和经验。在本文中,我们将总结一些常见的Java开发乱码问题解决方法,希望能够为读者提供帮助。 1. ...

    Java .properties中文资源批量转换工具和用法

    在处理中文内容时,由于字符编码的问题,可能会遇到显示乱码的困扰。为了解决这个问题,开发人员通常需要使用特定的工具来批量处理和转换`.properties`文件,以确保它们正确地支持中文字符。 本话题将介绍一种Java ...

    spring boot使用i18n时properties文件中文乱码问题的解决方法

    Spring Boot 使用 i18n 时 properties 文件中文乱码问题的解决方法 Spring Boot 是一个流行的 Java 框架,用于快速开发 Web 应用程序。然而,在使用 Spring Boot 时,遇到中文乱码问题的可能性很高,特别是在使用 ...

    java 读取properties配置文件内容乱码

    NULL 博文链接:https://liuzidong.iteye.com/blog/776637

    java properties应用案例

    - 文件编码:Java默认使用ISO-8859-1编码读取.properties文件,如果文件是UTF-8编码,可能会出现乱码。可以使用`InputStreamReader`和指定的编码解决这个问题。 - 错误处理:在处理文件时,必须处理可能出现的...

    log4j乱码问题解决办法

    然而,在使用过程中可能会遇到字符编码的问题,特别是中文乱码的情况,这不仅会影响日志的可读性,还可能导致难以追踪的问题。本文将详细介绍如何通过修改`log4j.properties`配置文件来解决log4j中的乱码问题。 ###...

    properties乱码

    解决properties乱码 j2ee只要将该文件复制到你的文件中输入要处理的的文件的路径和要输入的内容运行就可以解决中文乱码问题

    JavaFX+Jfoenix 学习笔记(十)--系统托盘及解决中文乱码问题源码

    在本篇JavaFX+Jfoenix学习笔记中,我们将探讨如何在JavaFX应用程序中实现系统托盘功能,以及如何解决可能出现的中文乱码问题。系统托盘是现代桌面应用中常见的一种特性,允许用户在关闭主窗口后,仍然可以通过托盘...

Global site tag (gtag.js) - Google Analytics