SpringBoot 配置文件中配置的中文,程序读取出来是乱码的解决

配置文件中是正常显示的中文,但是spring读取到的确是乱码。

我总共有两种解决办法,

第一种方法:

先复制或者备份一下你的配置文件的所有字符,打开设置将transparent native-to-ascii conversion选中,然后返回将之前的配置文件重新粘贴一遍(一定要将中文重新打一遍)如图:

Transparent native-to-ascii conversion的意思是:自动转换ASCII编码。

他的工作原理是:在文件中输入文字时他会自动的转换为Unicode编码,然后在idea中发开文件时他会自动转回文字来显示。

这样做是为了防止文件乱码。。。

OK,大概意思就是这样,这个文件你虽然看起来没问题,但是你只要选中了它,他么他现在就是一个ASCII文件存储在你本地,但是git上的文件可不是这个格式,你可以尝试用notepad++打开这个本地的.properties文件,你会发现他没有中文,,

这样可能会导致一个问题,git 提交后中文字符会乱码 https://www.jb51.net/article/195655.htm

第二种方法:

这个方法呢很简单就是直接在配置文件中将中文设置为Unicode编码,例如

spring.application-id=\u8863\u9f99\u5ddd

去网页找一个中文转成Unicode码的网站,直接进行转换

补充知识 :springboot 项目执行出现中文乱码(从本地运行到打war包)

前言:中文乱码问题

一,本地运行

就是直接使用springboot内嵌的tomcat运行出现中文乱码的问题

(1)参考如下pom.xml的配置文件加入jvm启动参数。

<jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>

(2)具体加的位置如下

<plugin>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-maven-plugin</artifactId>
  <!-- spring-boot:run 中文乱码解决 -->
  <configuration>
    <fork>true</fork>
    <!--增加jvm参数-->
    <jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
  </configuration>
  <dependencies>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>springloaded</artifactId>
      <version>1.2.5.RELEASE</version>
    </dependency>
  </dependencies>
</plugin>

二,打成war包乱码解决

问题描述

今天在使用 maven 打包spring boot 项目上线时,遇到一个坑,项目本地启动中文是没有乱码的 ,但是当我把打包好的jar ,扔向服务器时运行时,中文全部乱码,开始还以为是liuxn 本身一些配置我没有配置好,后来经过测试,打包的jar 文件本身中文就已经乱码,下面为本人调试修改后可以正常打包可执行jar并中文不乱码的pom.xml配置文件。

<!-- spring boot 项目打包成 可执行 jar 包 必须添加 , 打包方式 找到 当前项目目录 cmd 执行 mvn clean package -->
  <build>
    <plugins>
      <!-- 打包成可执行jar或者war,防止中文乱码,必须要下面这一个插件 -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <encoding>utf-8</encoding>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
         <!-- 这里为项目启动类-->
         <mainClass>com.zhenqinl.StartupApplication</mainClass>
        </configuration>
        <executions>
         <execution>
          <goals>
           <goal>repackage</goal>
          </goals>
         </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

三,结尾给大家一个神坑Tomcat报错

严重: Unable to process Jar entry [META-INF/versions/9/module-info.class] from Jar [jar:file:/E:/eclipse-workspace/.metadata/.plugins
/org.eclipse.wst.server.core/tmp1/wtpwebapps/GymSystem/WEB-INF/lib/log4j-api-2.11.1.jar!/] for
annotationsorg.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19at
org.apache.tomcat.util.bcel.classfile.Constant.readConstant(Constant.java:136)at org.apache.tomcat.util.bcel.classfile.ConstantPool.<init>
(ConstantPool.java:59)at
org.apache.tomcat.util.bcel.classfile.ClassParser.readConstantPool(ClassParser.java:208)at
org.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:118)at
org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2055)at
org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1931)at
org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfi
g.java:1897)at org.apache.catalina.startup.ContextConfig.pro

本人是直接下载一个Tomcat解决问题的,出现这个问题就是Tomcat的问题。

以上这篇SpringBoot 配置文件中配置的中文,程序读取出来是乱码的解决就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Springboot读取配置文件及自定义配置文件的方法

    1.创建maven工程,在pom文件中添加依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> </parent> <dependencies> <dependency

  • 在SpringBoot下读取自定义properties配置文件的方法

    SpringBoot工程默认读取application.properties配置文件.如果需要自定义properties文件,如何读取呢? 一.在resource中新建.properties文件 在resource目录下新建一个config文件夹,然后新建一个.properties文件放在该文件夹下.如图remote.properties所示 二.编写配置文件 remote.uploadFilesUrl=/resource/files/ remote.uploadPicUrl=/resource

  • 解决SpringBoot jar包中的文件读取问题实现

    前言 SpringBoot微服务已成为业界主流,从开发到部署都非常省时省力,但是最近小明开发时遇到一个问题:在代码中读取资源文件(比如word文档.导出模版等),本地开发时可以正常读取 ,但是,当我们打成jar包发布到服务器后,再次执行程序时就会抛出找不到文件的异常. 背景 这个问题是在一次使用freemarker模版引擎导出word报告时发现的.大概说一下docx导出java实现思路:导出word的文档格式为docx,事先准备好一个排好版的docx文档作为模版,读取解析该模版,将其中的静态资源

  • 详解Spring-boot中读取config配置文件的两种方式

    了解过spring-Boot这个技术的,应该知道Spring-Boot的核心配置文件application.properties,当然也可以通过注解自定义配置文件的信息. Spring-Boot读取配置文件的方式: 一.读取核心配置文件信息application.properties的内容 核心配置文件是指在resources根目录下的application.properties或application.yml配置文件,读取这两个配置文件的方法有两种,都比较简单. 核心配置文件applicati

  • SpringBoot 配置文件中配置的中文,程序读取出来是乱码的解决

    配置文件中是正常显示的中文,但是spring读取到的确是乱码. 我总共有两种解决办法, 第一种方法: 先复制或者备份一下你的配置文件的所有字符,打开设置将transparent native-to-ascii conversion选中,然后返回将之前的配置文件重新粘贴一遍(一定要将中文重新打一遍)如图: Transparent native-to-ascii conversion的意思是:自动转换ASCII编码. 他的工作原理是:在文件中输入文字时他会自动的转换为Unicode编码,然后在ide

  • SpringBoot在yml配置文件中配置druid的操作

    最新版的druid和旧版在filter配置方面有些不同,以下是旧版druid中配置filter: spring: ##数据库连接信息 datasource: url: jdbc:mysql://localhost:3306/young username: root password: root driver-class-name: com.mysql.jdbc.Driver ###################以下为druid增加的配置########################### t

  • 关于springboot 配置文件中属性变量引用方式@@解析

    这种属性应用方式是 field_name=@field_value@. 两个@符号是springboot为替代${}属性占位符产生,原因是${}会被maven处理,所以应该是起不到引用变量的作用. @@方式可以引用springboot非默认配置文件(即其他配置文件)中的变量: springboot默认配置文件是 src/main/resources/application.properties 补充知识:springboot项目使用@Value注解获取配置文件中的配置信息 application

  • SpringBoot配置文件中密码属性加密的实现

    目录 背景 集成jasypt-spring-boot到项目中 配置文件配置加密与读取 工作原理简析 使用自定义的加密算法 结语 本文主要介绍了SpringBoot配置文件中的明文密码如何加密保存,读取以及对于自定义的加密算法加密的参数如何保存和读取. 背景 为了安全的需要,一些重要的信息比如数据库密码不能明文保存在配置文件中,需要进行加密之后再保存.SpringBoot可以使用jasypt-spring-boot这个组件来为配置属性提供加密的支持. 集成jasypt-spring-boot到项目

  • SpringBoot配置文件中数据库密码加密两种方案(推荐)

    SpringBoot项目经常将连接数据库的密码明文放在配置文件里,安全性就比较低一些,尤其在一些企业对安全性要求很高,因此我们就考虑如何对密码进行加密. 介绍两种加密方式:jasypt 可加密配置文件中所有属性值; druid 自带了加解密,可对数据库密码进行加密. jasypt 加解密 jasypt 是一个简单易用的加解密Java库,可以快速集成到 Spring 项目中.可以快速集成到 Spring Boot 项目中,并提供了自动配置,使用非常简单. 步骤如下: 1)引入maven依赖 <de

  • springboot配置文件中使用${}注入值的两种方式小结

    目录 配置文件中使用${}注入值方式 在springboot中使用System.setProperty设置参数 配置文件自扫描 spring配置文件${}的用法 话不多说直接看就完事了 配置文件中使用${}注入值方式 在springboot中使用System.setProperty设置参数 user:   user-name: ${username}   age: ${age} 配置文件是这种写法,我们可以用System.setProperty来设置参数,System.setProperty相当

  • SpringBoot配置文件中系统环境变量存在特殊字符的处理方式

    目录 配置文件中系统环境变量存在特殊字符的处理 例如 yml配置文件的处理特殊字符 解决办法 配置文件中系统环境变量存在特殊字符的处理 SpringBoot的配置文件中使用系统环境变量作为外部配置的时候,如果出现特殊字符,比如Mysql密码等,只需要在系统环境变量中添加反斜杠(\)即可,不需要例会env/echo命令打印的环境变量, 例如 spring: cloud: service-registry: auto-registration: enabled: false jpa: open-in

  • 如何在Java SpringBoot项目中配置动态数据源你知道吗

    目录 首先需要引入第三方依赖 只需要在配置文件中按照如下配置 创建如下两个数据库 entity mapper.xml mapper层 Service层 下面是两个测试方法 下面可以来看一下测试结果: 在我们工作中涉及到一些场景需要我们配置多数据源的操作,之前来说我们配置数据源需要写繁琐的配置类来配置我们的数据源,哪个是默认数据源等等,而现在我们可以使用"苞米豆"为我们提供的提供的第三方工具,只需要简单配置就可以实现多数据源之间的灵活切换了! 首先需要引入第三方依赖 <depend

  • Java文件字符输入流FileReader读取txt文件乱码的解决

    目录 Java文件字符输入流FileReader读取txt文件乱码 先上代码 控制台输出结果如下 原因是 运行之后的结果为 字符流读取UTF-8和写出txt文件乱码问题 话不多说,直接上图 解决 Java文件字符输入流FileReader读取txt文件乱码 先上代码 public class FileInAndOut { public static void main(String[] args) { //定义指定磁盘的文件的File对象 File file = new File("E:/大三下

  • PHP中使用sleep造成mysql读取失败的案例和解决方法

    近日,由于项目需求 需要用到sleep函数定时从数据库取一堆数据出来去执行某些操作. sleep等待的时间至少有一个小时以上 此前做过测试 用sleep函数去完成数小时后执行的操作是可行的   可邪门的问题出来了 程序用sleep后发现不能从数据库取到相应的信息 把sleep去掉 结果正常   郁闷中... 难道sleep影响读库操作!!! 于是为了方便测试 直接来个sleep(10) 十秒后执行 结果能从数据库读取信息   可为什么sleep()一个小时后不能读取信息呢? 为了测试方便我直接在

随机推荐