2016-01-05 5 views
0

Я пытаюсь передать значения, например: Wei ß от UI до контроллера MPC, но где-то «по пути» к контроллеру, и становится программы ПОМ Пропустить умляуты (специальные символы) от углового клиента до сервера java

ИВ как пытается найти способ, чтобы установить кодировку UTF-8 где-то решить эту проблему, но я просто не могу понять его ..

Вот как я отправлю от Углового контроллера:

JSON.stringify(map) 

Вот как это выглядит, когда я печатаю его на стороне клиента

Object {Color: "Grün", Color: "Weiß"} 

Это, как я получить его на стороне сервера контроллера

public String upload(@RequestParam("nvMap") JSONObject jObject) 

И после того, что он уже corruped.

Любая идея, как я могу это исправить?

Большое спасибо

+0

Вы смотрели на то, что происходит на проволоке , например с Wireshark? –

+0

Нет, я не знаком с этим. Я сделал chekc мой запрос paylod, хотя и он выглядит правильно там – Vika

+0

Затем я предлагаю вам найти его как инструмент для добавления в свой репертуар :) Это (изредка) жизненно важно, чтобы иметь возможность посмотреть, какой именно запрос был отправлен, в терминах необработанных байтов. –

ответ

0

Это (больше), вероятно, что текст хранится как задумано в базе данных, но вы видите неправильный вывод при использовании значения из внутреннего интерфейса. Это потому, что «испорчено» текст состоит из двух байт, которые, когда интерпретируются как (с переменной длиной) UTF-8 приводит к нужному символу (плюс an invisible character)

@Test 
public void testTranscoding() throws Exception { 
    byte[] utf8Bytes = "Weiß".getBytes("UTF-8"); 
    String asUtf8 = new String(utf8Bytes, "ISO-8859-1"); 
    assertEquals(asUtf8, "WeiÃ\u009F"); 
} 
+0

Прошу прощения, я не понял вашего ответа. – Vika

Смежные вопросы