0
我有一個c#桌面客戶端讀取本地數據庫並將值上傳到Web應用程序。RestSharp,spring引導和JSON.org編碼問題
在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Ñ[email protected]ºª¡??!」
錯誤表示:pais ='ESPA├?A @┬║┬¬┬í┬┐?!'
編輯:
我只是說在application.properties這些設置沒有任何成功:
# HTTP encoding (HttpEncodingProperties)
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
你說的被代表完全錯誤的,你可以張貼各右表示和你所看到的錯誤表示的例子嗎? – csprabala
我剛剛添加了示例字符串。 –