Как сделать encodeURI / decodeURI, используя Java Spring? - PullRequest
2 голосов
/ 10 апреля 2019

У меня есть простой API, созданный с помощью Java Spring, который получает тексты и сохраняет их в базе данных.И приложение в javascript, которое форматирует тексты и отправляет их в api.

У меня есть тексты на нескольких языках (китайский, японский ...), и у меня были проблемы со специальными символами, поэтому я использовал encodeURIв JavaScript, чтобы отправить текст в API.

Когда текст получен API, мне нужно выполнить кодирование, сохранив исходный текст в базе данных.Но когда мне нужно вернуть тексты во фронт-приложение, мне нужно сначала закодировать его снова.

Кодированный текст на переднем конце перед отправкой в ​​api

console.log(text);
//红灯亮起时, 麦克风处于静音状态

text = decodeURIComponent(text);
console.log(text);
//%E7%B4%85%E7%87%88%E4%BA%AE%E8%B5%B7%E6%99%82%2C%20%E9%BA%A5%E5%85%8B%E9%A2%A8%E8%99%95%E6%96%BC%E9%9D%9C%E9%9F%B3%E7%8B%80%E6%85%8B

Так что я хотел бы знать, как сделать кодированный кодEURI / decodeURI с использованием Java-пружины.

1 Ответ

3 голосов
/ 10 апреля 2019

Вы ищете java.net.URLDecoder и java.net.URLEncoder:

String decoded = URLDecoder.decode(s, StandardCharsets.UTF_8);
String encoded = URLEncoder.encode(result, StandardCharsets.UTF_8);

Приведенный выше подход будет работать для Java 10 и выше. Для предыдущих версий вам придется заключить код в блок try-catch.

...