Java UTF-8 строковая сериализация \ xF2 вместо \ u00F2 - PullRequest
1 голос
/ 29 марта 2012

У меня есть строка с символами UTF8, и я использую StringEntity, чтобы поместить ее в HttpEntityEnclosingRequestBase и отправить ее на сервер. Моя проблема в том, что символы UTF8 кодируются как \ xF2, а сервер хотел бы \ u00f2. Как я могу это исправить? Или как я могу легко преобразовать строку UTF-8 в строку, где вместо символов UTF8 у меня есть подстроки \ u00f2?

Решение: В итоге решение было: StringEntity (string, "UTF-8"));

Заранее спасибо, Дэвид

Ответы [ 2 ]

1 голос
/ 29 марта 2012

Вы можете конвертировать между внутренней кодировкой Java (UTF-16) и байтовыми последовательностями UTF-8 различными способами. Самое простое это:

byte[] utf8data = "my string".getBytes("UTF-8");
String myString = new String(utf8data, "UTF-8");

Существуют также ориентированные на потоки классы, которые могут преобразовывать потоки байтов в потоки символов с помощью кодировки. Смотрите java.io пакет.

0 голосов
/ 29 марта 2012

Просто сделай


String str = ...;
str = replace("\\x", "\\u00");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...