1.前几天脑抽,改了下idea的配置,然后今天弄了个springboot项目,刚建好,然后想测试一下controller看看端口访问正常不,没想到乱码了
2.第一种解决方案:
@GetMapping(value="/lcj",produces = "text/plain;charset=utf-8")
加了这个网页可以解决,但是postman测试,swagger测试,依旧乱码
第二种:
在application.yml加上
spring.http.encoding.force=true
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
server.tomcat.uri-encoding=UTF-8
emmmm依旧没效果
第三种擦亮眼睛啦~~~
我是实现mvcadapt接口
package com.lcj.mini.common.configure;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.nio.charset.Charset;
import java.util.List;
/**
* @auther:lcj
* @date 2020/4/7 下午 22:16
*/
@Configuration
@EnableSwagger2
@EnableWebMvc
public class SwaggerConfigure extends WebMvcConfigurerAdapter {
/***
* 乱码处理
* @return
*/
@Bean
public HttpMessageConverter<String> responseBodyConverter() {
StringHttpMessageConverter converter = new StringHttpMessageConverter(
Charset.forName("UTF-8"));
return converter;
}
@Override
public void configureMessageConverters(
List<HttpMessageConverter<?>> converters) {
super.configureMessageConverters(converters);
converters.add(responseBodyConverter());
}
@Override
public void configureContentNegotiation(
ContentNegotiationConfigurer configurer) {
configurer.favorPathExtension(false);
}
/**
* 接口文档
* @param registry
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("TheBackEndOfWeChatApplet API Document")
.description("lcj后端的接口文档")
.termsOfServiceUrl("")
.version("1.0")
.build();
}
// @Bean
// public Docket api() {
// return new Docket(DocumentationType.SWAGGER_2)
// .apiInfo(apiInfo())
// .select()
// .apis(RequestHandlerSelectors.any())
// .paths(PathSelectors.regex("^(?!auth).*$"))
// .build()
// .securitySchemes(securitySchemes())
// .securityContexts(securityContexts());
//
// }
// private List<ApiKey> securitySchemes() {
// return newArrayList(
// new ApiKey("Authorization", "Authorization", "header"));
// }
// private List<SecurityContext> securityContexts() {
// return newArrayList(
// SecurityContext.builder()
// .securityReferences(defaultAuth())
// .forPaths(PathSelectors.regex("^(?!auth).*$"))
// .build()
// );
// }
// List<SecurityReference> defaultAuth() {
// AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
// AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
// authorizationScopes[0] = authorizationScope;
// return newArrayList(
// new SecurityReference("Authorization", authorizationScopes));
// }
}