今天开始学springBoot,根据入门指导资料在Idea中创建好SpringBoot项目之后,遇到了一个非人类的问题,步骤完全一样,但是无论如何选择encoding,项目启动之后,web端的中文一直乱码。
百度中的所有方法都用过,最后问题出在了很容易忽视的地方,下面大概说一下SpringBoot新项目配置过程:(IDE工具是idea)
1.New--->Project 选择如下图:
Group是main的项目路径,SpringBoot项目作为jar的形式来运行,所以pom文件中的groupId也是这个;
Artifact是pom中的artifactId,项目根目录名称;
这一步比较重要,Spring Boot的版本选择1.5.10就行,刚开始选的2.0.0,无论怎么配置都会出现中文乱码问题;
同时勾选,加上Web的依赖;
给项目起个名字
2. 至此项目已经创建好了,application.properties中可以设置变量直接读取:
server.tomcat.uri-encoding=UTF-8
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
spring.messages.encoding=UTF-8
这些是配置编码,同时设置File--->setting--->Editor--->File Encoding如下图(需要设置的用红框标起来了):
main 文件下有一个artifactId+Application的java文件,是SpringBoot配置的入口类;我们在这个类中写测试中文乱码的代码;
用@Value取得刚才配置的变量值,然后直接写方法输出,如下:
book.author=罗贯中 book.name=三国演义 book.pinyin=sanguoyanyi
@Value(value = "${book.author}") private String bookAuthor; @Value("${book.name}") private String bookName; @Value("${book.pinyin}") private String bookPinYin;
@RequestMapping( value = "/" , produces = "text/plain;charset=UTF-8")String index(){ return "Hello Spring Boot! The BookName is "+ bookName+ ";and Book Author is "+ bookAuthor+ ";and Book PinYin is "+ bookPinYin ;}
直接运行,成功:
注:SpringBoot的版本不要选太高,可能会存在不稳定因素,帮到你了就点个赞吧