java读取配置文件(properties)的时候,unicode码转utf-8方式

Java读取配置文件(properties)时,如果文件中含有中文或其他非英文字符,需要进行字符编码转换,否则会出现乱码现象。此时可以采用unicode到UTF-8的编码方式。

以下是Java读取配置文件(properties)时unicode码转UTF-8的完整攻略:

1. 首先在properties文件中保存中文字符

在编辑properties文件时,需要保证其中的中文字符是以unicode编码的方式存储,如下所示:

hello=\u4f60\u597d

其中,\u4f60\u597d代表的就是中文“你好”的unicode编码方式。

2. 读取properties文件

在Java代码中读取properties文件时,可以使用Properties类进行读取,如下所示:

InputStream inputStream = getClass().getResourceAsStream("/config.properties");
Properties properties = new Properties();
properties.load(new InputStreamReader(inputStream, "UTF-8"));

这里第二个参数”UTF-8”代表指定编码方式为UTF-8。

3. 转换properties文件中保存的unicode为对应字符

在读取properties文件时,需要将其中保存的unicode编码转换为对应的字符,可以使用Java自带的工具类java.util.Propertiesload方法,它内部会自动处理unicode编码转换,如示例2所示。

4. 示例1:保存中文字符的properties文件

保存为UTF-8编码格式的properties文件,内容如下:

site.name=\u7f51\u7ad9\u540d\u79f0
site.description=\u7f51\u7ad9\u63cf\u8ff0

其中\u7f51\u7ad9\u540d\u79f0代表的是中文网站名称, \u7f51\u7ad9\u63cf\u8ff0代表的是中文网站描述。两个中文字符串都使用unicode编码方式存储。

5. 示例2:读取properties文件并转换字符编码

读取以上示例1保存的properties文件,并将其中的unicode编码转换为对应的中文字符,代码如下:

String file = "/config.properties";
InputStream inputStream = UnicodeToUtf8.class.getResourceAsStream(file);
Properties prop = new Properties();
prop.load(new InputStreamReader(inputStream, "UTF-8"));
String siteName = prop.getProperty("site.name");
String siteDesc = prop.getProperty("site.description");
System.out.println(siteName); // 网站名称
System.out.println(siteDesc); // 网站描述

以上代码中,输出的结果分别为”网站名称”和”网站描述”,即成功将unicode编码转换为对应的中文字符。

以上就是Java读取配置文件(properties)时,unicode码转UTF-8的完整攻略,包含了两个示例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java读取配置文件(properties)的时候,unicode码转utf-8方式 - Python技术站

(1)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • JVM钩子函数的使用场景详解

    当JVM进程结束时,可能存在一些资源需要释放或者状态需要保存。为了实现这样的目的,我们可以使用JVM钩子函数。 JVM钩子函数是一种回调函数,它可以在JVM进程终止前被执行。我们可以通过实现钩子函数来在程序结束时执行一些特定的操作,例如清理资源、保存状态和日志记录等。 JVM钩子函数的使用场景 通常情况下,JVM钩子函数可以用于以下场景: 清理资源 当JVM…

    Java 2023年5月26日
    00
  • java8新特性-lambda表达式入门学习心得

    Java 8新特性 – Lambda表达式入门学习心得 什么是Lambda表达式 Lambda表达式在Java 8中被引入,可以简化某些代码的书写。Lambda表达式本质上是一个匿名函数,可以传递给其他方法作为参数并被执行。它可以替代使用匿名内部类的情况,其中传递一个函数作为参数的情况非常常见。 Lambda 表达式语法 Lambda表达式的语法非常简洁。它…

    Java 2023年5月26日
    00
  • 基于jstl 标签的使用介绍

    下面是关于“基于jstl标签的使用介绍”的完整攻略。 什么是JSTL? JSTL(JavaServer Pages标准标签库)是在Java web应用程序中使用的一组标记,是为JSP提供的一组标签,它可以帮助程序员们简化JSP页面的创建和维护流程,是JSP中常用的标签库之一。 JSTL是一组配置简单、参数方便的标记库,是JSP中最重要的标记库之一,但它不是J…

    Java 2023年6月15日
    00
  • Java File类的详解及简单实例

    Java File类的详解及简单实例 简介 Java中的File类是一个用于操作文件和文件夹的类,可以用于检查文件和文件夹的状态、进行文件和文件夹的删除、重命名等操作。File类中包含的方法较多,它与Java IO的输入输出流中的类相互支持,是进行Java操作文件的重要一环。 File类的构造函数 File(String pathname) 用指定的路径na…

    Java 2023年5月20日
    00
  • Springboot使用Security实现OAuth2授权验证完整过程

    下面我为大家详细讲解Spring boot使用Security实现OAuth2授权验证的完整流程。 1. OAuth2介绍 OAuth2是一种常用的授权框架,可以使得第三方应用程序获得用户的授权才能访问用户的资源。OAuth2的主要授权方式有4种: 1.1 授权码模式(Authorization Code) 授权码模式是OAuth2中最常用的一种模式。其要求…

    Java 2023年5月20日
    00
  • java实现数组中的逆序对

    首先,让我们先来了解逆序对的概念。逆序对是指在一个数组a中,对于任意两个元素a[i]和a[j],当且仅当ia[j]时,就称这两个元素是一个逆序对。 为了实现数组中的逆序对,我们可以采用归并排序的思路,利用分治算法的思想来实现。 具体的实现过程如下: 将数组从中间分成两个子数组,递归地对两个子数组进行排序,直到每个子数组只剩下一个元素。 然后将两个子数组合并成…

    Java 2023年5月26日
    00
  • boot-admin整合flowable官方editor-app源码进行BPMN2-0建模(续)

    boot-admin整合flowable官方editor-app源码进行BPMN2-0建模(续)书接上回 项目源码仓库github项目源码仓库gitee boot-admin 是一款采用前后端分离模式、基于SpringCloud微服务架构的SaaS后台管理框架。系统内置基础管理、权限管理、运行管理、定义管理、代码生成器和办公管理6个功能模块,集成分布式事务S…

    Java 2023年4月22日
    00
  • Java Apache Commons报错“ZipUnsupportedCompressionMethodException”的原因与解决方法

    “DuplicateActionException”是Java的Struts框架中的一个异常,通常由以下原因之一引起: Action重复:如果存在重复的Action,则可能会出现此异常。例如,可能会在配置文件中定义两个名称相同的Action。 以下是两个实例: 例1 如果存在重复的Action,则可以尝试更改Action名称以解决此问题。例如,在Struts…

    Java 2023年5月5日
    00
合作推广
合作推广
分享本页
返回顶部