Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / В каком формате лучше передавать данные через json: unicode или UTF-8? / 25 сообщений из 25, страница 1 из 1
01.12.2011, 17:51:54
    #37554663
redsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком формате лучше передавать данные через json: unicode или UTF-8?
Моё мобильное приложение на Андроид будет парсить json .
БД на сервере хранит данные в UTF-8 как и БД в телефоне.
Что мне просить от веб-разработчика: unicode или UTF-8 . И почему?

Раньше парсил только Контакт. Там UTF-8 . Но разработчик говорит что
"размер страницы всё-равно одинаковый и по другому он символы не передает. Т.к json в первую очередь юзается для ajax. А ajax не работает с одно байтными кодировками. Т.е. со всеми window-*."

Отстать от разработчика и парсить Юникод или лучше, чтобы был UTF-8?
...
Рейтинг: 0 / 0
01.12.2011, 18:07:19
    #37554715
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком формате лучше передавать данные через json: unicode или UTF-8?
redskyЧто мне просить от веб-разработчика: unicode или UTF-8 .А вы и разницу знаете?
...
Рейтинг: 0 / 0
01.12.2011, 18:10:27
    #37554726
redsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком формате лучше передавать данные через json: unicode или UTF-8?
Basil A. SidorovredskyЧто мне просить от веб-разработчика: unicode или UTF-8 .А вы и разницу знаете?Не знаю разницы. Юзал раньше UTF-8 , а тут увидел текст в виде "ели Европы высказ" и вот задался вопросом ...
...
Рейтинг: 0 / 0
01.12.2011, 18:13:30
    #37554738
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком формате лучше передавать данные через json: unicode или UTF-8?
unicode это представление символов в виде числовых значений.
UTF-8 это представление числовых значений unicode в двоичном виде.
Это совсем не взаимозаменяемые термины.
...
Рейтинг: 0 / 0
01.12.2011, 18:14:35
    #37554744
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком формате лучше передавать данные через json: unicode или UTF-8?
redskyНе знаю разницы. Юзал раньше UTF-8 Вот его и просИте., а тут увидел текст в виде "еВ ресурсных файлах? Ну так почитайте каким образом ява позволяет задавать символы и где это может использоваться.

P.S. И вам повторю - "это" забота рантайма.
...
Рейтинг: 0 / 0
01.12.2011, 18:24:25
    #37554757
redsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком формате лучше передавать данные через json: unicode или UTF-8?
Basil A. SidorovВ ресурсных файлах? Нет, в браузере когда руками ввожу запрос в адрессную строку.

Переформулирую вопрос:
Какая веб-страничка будет больше в килобайтах:
"ели Европы высказ"
или
"какое-то слово"
...
Рейтинг: 0 / 0
01.12.2011, 18:29:27
    #37554762
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком формате лучше передавать данные через json: unicode или UTF-8?
redskyКакая веб-страничка будет больше в килобайтах:
"еЕсли такое отдаёт сайт, то авторов надо расстрелять.
Лучше бы, конечно, из рогатки и ещё в детстве, но и сейчас не поздно.
...
Рейтинг: 0 / 0
01.12.2011, 18:38:23
    #37554778
redsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком формате лучше передавать данные через json: unicode или UTF-8?
Basil A. SidorovredskyКакая веб-страничка будет больше в килобайтах:
"еЕсли такое отдаёт сайт, то авторов надо расстрелять.
Лучше бы, конечно, из рогатки и ещё в детстве, но и сейчас не поздно.
т.е.?
У меня в БД эта же инфа занимает 100 кБ.
Страничка с json в виде "... ели Европы высказ ..." весит 700 кБ.
Мне это парсить или говорить, чтобы он привёл её к виду "... какое-то слово ..." ?

И как правильно объяснить разработчику, что я хочу от него?
Почему браузер Chrome показывает, что это "... ели Европы высказ ..." - страница открыта в кодировке Unicode (UTF-8) и это "... какое-то слово ..." - точно также?
...
Рейтинг: 0 / 0
01.12.2011, 18:46:46
    #37554795
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком формате лучше передавать данные через json: unicode или UTF-8?
redskyт.е.?\u#### не имеет ни малейшего отношения ни к юникоду, ни (тем более) к utf-8.
Это способ кодирования символов BMP.
А веб-сервера, сайты и браузеры давным-давно умеют работать и с utf8 и с utf16-вариантами. В случае кирилицы utf8 и utf16 - "равноразмерны" (два байта на символ). utf8, кроме того обеспечивает "экономию на латинице".
Поэтому кто-то должен найти что-то, превращающее нормальный юникод в \u-непотребицу.

P.S. Насколько я помню, особо запущенные случае в вебе кодируются, всё-таки, амперсандами, так что \u#### должно быть "pure-java заморочкой".
...
Рейтинг: 0 / 0
01.12.2011, 18:53:37
    #37554806
redsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком формате лучше передавать данные через json: unicode или UTF-8?
Basil A. Sidorovredskyт.е.?\u#### не имеет ни малейшего отношения ни к юникоду, ни (тем более) к utf-8.
Это способ кодирования символов BMP.
А веб-сервера, сайты и браузеры давным-давно умеют работать и с utf8 и с utf16-вариантами. В случае кирилицы utf8 и utf16 - "равноразмерны" (два байта на символ). utf8, кроме того обеспечивает "экономию на латинице".
Поэтому кто-то должен найти что-то, превращающее нормальный юникод в \u-непотребицу.

P.S. Насколько я помню, особо запущенные случае в вебе кодируются, всё-таки, амперсандами, так что \u#### должно быть "pure-java заморочкой". Спасибо Вам за развёрнутый ответ!!! Сказал разрабу. Обещал ещё покапаться в кодировке.
...
Рейтинг: 0 / 0
01.12.2011, 19:29:03
    #37554856
Leonidv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком формате лучше передавать данные через json: unicode или UTF-8?
redskyУ меня в БД эта же инфа занимает 100 кБ.
В БД инфа тоже хранится в какой-то кодировке. И если разработчик не из XX века, то в UTF-8 и хранится.
...
Рейтинг: 0 / 0
02.12.2011, 16:06:57
    #37556346
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком формате лучше передавать данные через json: unicode или UTF-8?
[quot Leonidv]redskyВ БД инфа тоже хранится в какой-то кодировке. И если разработчик не из XX века, то в UTF-8 и хранится.Хех ... UTF-8, конечно, удобный транспорт, но всё-тот же оракакель декларирует ALLUTF32.
Но дело даже не в этом.
В большинстве случаев не существует простого способа узнать, сколько реально занимают в базе те или иные данные. Поэтому фраза "у меня в базе", как правило означает "мне на клиента".
...
Рейтинг: 0 / 0
02.12.2011, 16:18:19
    #37556373
redsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком формате лучше передавать данные через json: unicode или UTF-8?
[quot Basil A. Sidorov]Leonidvпропущено...
Хех ... UTF-8, конечно, удобный транспорт, но всё-тот же оракакель декларирует ALLUTF32.
Но дело даже не в этом.
В большинстве случаев не существует простого способа узнать, сколько реально занимают в базе те или иные данные. Поэтому фраза "у меня в базе", как правило означает "мне на клиента".В данном случае вся БД (Sqlite) после заполнения на клиенте занимает 150kB .
Так что и возникло сомнение, когда основная таблица в формате json достанная с MySql заняла 700kB .
...
Рейтинг: 0 / 0
02.12.2011, 16:51:03
    #37556480
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком формате лучше передавать данные через json: unicode или UTF-8?
Basil A. Sidorov\u#### не имеет ни малейшего отношения ни к юникоду,

в случае java такая хрень как раз имеет прямое отношение к юникоду, это из описания формата properties файлов - All non-Latin-1 characters must be entered by using Unicode escape characters, e. g. \uHHHH where HHHH is a hexadecimal index of the character in the Unicode character set.
...
Рейтинг: 0 / 0
02.12.2011, 17:04:45
    #37556522
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком формате лучше передавать данные через json: unicode или UTF-8?
wessenв случае java такая хрень как раз имеет прямое отношение к юникоду, это из описания формата properties файловЯ в курсе, но всяк сверчок - знай свой шесток.
json-запросы к файлам свойств - ну вот никаким боком.
...
Рейтинг: 0 / 0
02.12.2011, 17:09:54
    #37556545
redsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком формате лучше передавать данные через json: unicode или UTF-8?
wessenв случае java такая хрень как раз имеет прямое отношение к юникоду, это из описания формата properties файлов - All non-Latin-1 characters must be entered by using Unicode escape characters, e. g. \uHHHH where HHHH is a hexadecimal index of the character in the Unicode character set.Вот теперь я разбираю как мне перекодировать все символы вида \uxxxx к читабельному виду для записи в Sqlite на телефоне.

Считываю пока так:

HttpClient httpClient = new DefaultHttpClient();
HttpGet request = new HttpGet(" http://android.forum-example.org/?a=1&b=2&c=3");
HttpResponse response = httpClient.execute(request);
resJson = HttpHelper.requestStr(response);
Log.v("JSON:", resJson);

и метод requestStr :

public static String requestStr(HttpResponse response){
String result = "";
try{
InputStream in = response.getEntity().getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder str = new StringBuilder();
String line = null;
while((line = reader.readLine()) != null){
str.append(line + "\n");
}
in.close();
result = str.toString();
}catch(Exception ex){
result = "Error";
}
return result;
}

Может подскажете как \u#### преобразовывать ... ?
...
Рейтинг: 0 / 0
02.12.2011, 17:49:03
    #37556656
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком формате лучше передавать данные через json: unicode или UTF-8?
redsky,
...
Рейтинг: 0 / 0
02.12.2011, 17:50:05
    #37556660
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком формате лучше передавать данные через json: unicode или UTF-8?
redsky,

try {
// Convert from Unicode to UTF-8
String string = "嘹嘻";
byte[] utf8 = string.getBytes("UTF-8");

// Convert from UTF-8 to Unicode
string = new String(utf8, "UTF-8");
} catch (UnsupportedEncodingException e) {
}
...
Рейтинг: 0 / 0
02.12.2011, 17:51:25
    #37556664
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком формате лучше передавать данные через json: unicode или UTF-8?
wessen,

Если вставить пример моего кода в теги src, то не работает предпросмотр и невозможно отправить такой ответ, сервак падает :)
...
Рейтинг: 0 / 0
02.12.2011, 20:08:36
    #37556864
redsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком формате лучше передавать данные через json: unicode или UTF-8?
wessenredsky,

try {
// Convert from Unicode to UTF-8
String string = "嘹嘻";
byte[] utf8 = string.getBytes("UTF-8");

// Convert from UTF-8 to Unicode
string = new String(utf8, "UTF-8");
} catch (UnsupportedEncodingException e) {
} Так работает, если я вписываю string сам. Если же string получается через responce , то результат тотже, что и раньше.

InputStreamReader(in, "UTF-8"); - тоже ничего не меняет.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
InputStream in = response.getEntity().getContent();
InputStreamReader inpReader = new InputStreamReader(in, "UTF-8");
String defaultEncoding = inpReader.getEncoding();
BufferedReader reader = new BufferedReader(inpReader);
StringBuilder str = new StringBuilder();
String line = null;
while((line = reader.readLine()) != null){
   str.append(line + "\n");
}
in.close();
result = str.toString();
...
Рейтинг: 0 / 0
05.01.2012, 17:15:29
    #37603295
slope
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком формате лучше передавать данные через json: unicode или UTF-8?
redsky,
У меня аналогичная задача. Решили вопрос? поделитесь.
...
Рейтинг: 0 / 0
02.05.2012, 15:25:12
    #37779160
TzX
TzX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком формате лучше передавать данные через json: unicode или UTF-8?
Возникла аналогичная ситуация, кто поборол - поделитесь решением.
Привести Unicode коды в читабельный вид
...
Рейтинг: 0 / 0
02.05.2012, 15:34:18
    #37779181
redsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком формате лучше передавать данные через json: unicode или UTF-8?
TzXВозникла аналогичная ситуация, кто поборол - поделитесь решением.
Привести Unicode коды в читабельный видТогда всё-таки напряг веб-разработчика, чтобы привёл ответы к читабельному виду. Когда он покапался и сделал, то размер странички уменьшился в 2-3 раза и парсится вся стало в читабельный вид.
Проверял результат на сервисе просмотра json ответов
...
Рейтинг: 0 / 0
02.05.2012, 15:39:08
    #37779194
TzX
TzX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком формате лучше передавать данные через json: unicode или UTF-8?
Мне вот разраба не напрячь, нужно как-то самому к читабельному виду привести. И это очень странно, что если самому строку из кодов написать всё корректно отображается, а если из ответа то кодами...
...
Рейтинг: 0 / 0
02.05.2012, 16:12:43
    #37779261
TzX
TzX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В каком формате лучше передавать данные через json: unicode или UTF-8?
Найдено решение.
Код: java
1.
org.apache.commons.lang.StringEscapeUtils.unescapeJava(String);


Прекрасно справляется с задачей.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / В каком формате лучше передавать данные через json: unicode или UTF-8? / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]