2014-12-30 37 views
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 
+0

你說的被代表完全錯誤的,你可以張貼各右表示和你所看到的錯誤表示的例子嗎? – csprabala

+0

我剛剛添加了示例字符串。 –

回答