J'ai donc un problème de codage de caractères lors de la réception de données provenant de restclient en utilisant restTemplate pour envoyer des données. et ceci mon exemple de code:Impossible de recevoir le format UTF-8 avec String dans LinkedHashMap lors de l'utilisation de RestTemplate
Ceci est mon code client; Je reçois déjà des données avec encodage UTF-8:
rest.getMessageConverters().add(0, new StringHttpMessageConverter(Charset.forName("UTF-8")));
Map<String,Object> params = new HashMap<String,Object>();
params.put("modelname","character without utf-8");
MyModel oldModel = rest.postForObject(MYMODEL_SERVICE_URI + "/get", params, MyModel.class);//it return perfect model with utf-8 encoded
oldModel.setContent("Tôi muốn cập nhật model này với định dạng UTF-8");
MyModelWrapper wrapper = new MyModelWrapper();
wrapper.add(oldModel);
params.put("newmodel", wrapper);
Message message = rest.postForObject(MYMODEL_SERVICE_URI + "/update", params, Message.class);//class message contains the message back and the status of that message in boolean
System.out.println(message);
Ceci est mon code de service
@RequestMapping(value="/update", method=RequestMethod.POST)
@ResponseBody
public Message update(@RequestBody Map<String, Object> params){
.....
LinkedHashMap<String,Object> map = (LinkedHashMap<String,Object>params.get("newmodel");
Iterator<String> iter = map.keySet().iterator();
String key = "";
while(iter.hasNext()){
key = iter.next();
System.out.println(map.get(key));//returned the string value is not in utf-8 format
//some method casting linkedhashmap to MyModel
}
....
return message;
}
Et le message de retour de celui-ci n'est pas dans le codage utf-8. J'ai donc besoin d'aide sur l'encodage lors de la réception de l'objet depuis le client de repos.
Merci beaucoup, mais il est de ma faute. Mon code fonctionne parfaitement sans ajouter consomme, produit. J'essaie juste une autre méthode, et je vois toujours sur la console qu'il n'y a pas de caractère utf-8. mais quand je convertis le texte en byte [], c'est la même chose, donc j'essaie d'utiliser ce code de mise à jour, puis j'utilise get service pour obtenir cet Object, et je vois que la valeur est au format utf-8. Merci pour votre aide –