我一直在尝试在URL中使用重音字符来调用SOLR。 我的网址看起来像这样:
"http://host:8983/solr/principal/select?q=**name:%22Michaël.e%22**"
从浏览器触发URL时,我得到了正确的结果但是从RestTempalte.exchange尝试时(URI,HttpMethod.GET,entity,String.class) 我在SOLR上看到的日志显示重音字符被转换为“?”如下图所示
问=(名称: “米莎.E”)
我已将RestTemple请求charSet设置为“UTF-8”,它仍然会这样做。
我的SOLR正在Jetty上运行。
答案 0 :(得分:0)
您可以尝试使用URLEncoder
调用RestTemplate之前对HTML字符进行编码String baseUri = "http://host:8983/solr/principal/select?q=**name:%22";
// TODO get name from somewhere
String name = "Michaël.e";
String encodedName= = URLEncoder.encode(name, "UTF-8");
RestTempalte.exchange(baseUri + encodedName + "%22**",HttpMethod.GET, entity, String.class);