我有一个c#桌面客户端,它读取本地数据库并将值上传到Web应用程序中。
在c#方面我使用的是RestSharp和Json.net。
private static void DBUpdater()
{
var client = new RestClient();
client.BaseUrl = BASE_URL;
string json = JsonConvert.SerializeObject(modelo.getComunidades(), Formatting.Indented);
Console.WriteLine(json);
var request = new RestRequest("/nuevascomunidades", Method.POST);
request.RequestFormat = DataFormat.Json;
request.AddParameter("comunidades", json);
Console.WriteLine(client.Execute(request).ResponseStatus);
Console.ReadKey();
}
当我通过控制台打印出生成的json字符串时,所有字符都能很好地表示出来。
但是,当我从spring boot / spring数据中获取值时,任何特殊字符都表示完全错误。
在服务器端,我正在反序列化这样的usng json.org:
@RequestMapping(value = "/nuevascomunidades", method = RequestMethod.POST)
public void nuevasComunidades(@RequestParam(value = "comunidades") String comunidades) {
logger.debug("@@@@@@Entra en /nuevascomunidades");
JSONArray entrada = new JSONArray(comunidades);
JSONObject aux;
Comunidad comunidad;
int top = entrada.length();
for (int i = 0; i < top; i++) {
aux = entrada.getJSONObject(i);
comunidad = new Comunidad(Integer.valueOf(aux.getString("Numero")),
aux.getString("Nif"),
aux.getString("Nombre"),
aux.getString("Direccion"),
aux.getString("Cod_postal"),
aux.getString("Poblacion"),
aux.getString("Provincia"),
aux.getString("Pais"),
aux.getBoolean("Baja"));
comunidadRepositorio.save(comunidad);
logger.debug("@@@@@@Comunidad añadida: " + comunidad.toString());
}
}
有关如何修复编码的想法吗?
提前致谢。
正确的陈述:“Pais”:“ESPAÑA@ºª¡???!”
错误的陈述:pais ='ESPA├?A @┬║┬¬┬í┬┐?!'
编辑:
我刚刚在application.properties中添加了这些设置而没有任何成功:
# HTTP encoding (HttpEncodingProperties)
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
答案 0 :(得分:0)