powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / BlazeDS сериализует UTF8 в ANSI
7 сообщений из 7, страница 1 из 1
BlazeDS сериализует UTF8 в ANSI
    #37651130
iPOJO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На Flex-клиенте создаем объект String в UTF8 и передаем его в метод экземпляра RemoteObject.
На Java сервер через BlazeDS эта строка приходит в ANSI (1251)!!
Вопрос - можно ли настроить как-то BlazeDS (если да, то как), чтобы он кодировки строк не менял?
Может кто сталкивался уже с такой проблемой?
...
Рейтинг: 0 / 0
BlazeDS сериализует UTF8 в ANSI
    #37651590
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как-то странно. если вы передаёте строки, то там строки. Строка не может быть в UTF8. Строка это текст.
Если вы передаёте byte[] то это представлени строки. Оно может быть в UTF8 или в любой другой кодировке.
Покажите на коде.
И ANSI это не совсем кодировка. Windows 1251, CP1251 - это кодировка.
...
Рейтинг: 0 / 0
BlazeDS сериализует UTF8 в ANSI
    #37651886
iPOJO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на клиенте делаю так:

Код: plaintext
1.
2.
3.
var str:String = "тест";
trace(str); // В файле flashlog.txt 8 байт: D1 82 D0 B5 D1 81 D1 82 ("тест" в кодировке UTF8)
myRemoteObject.methodFoo(str);



на java сервере
Код: java
1.
2.
3.
public void methodFoo(String str){
    new FileOutputStream("C:/1.txt").write(str.getBytes()); // В 1.txt содержится 4 байта: F2 E5 F1 F2 ("тест", кодировка win1251)
}
...
Рейтинг: 0 / 0
BlazeDS сериализует UTF8 в ANSI
    #37651920
zalexaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iPOJO,
Берите уж райтер и соотв.
...
Рейтинг: 0 / 0
BlazeDS сериализует UTF8 в ANSI
    #37651959
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iPOJO
Код: plaintext
1.
trace(str); // В файле flashlog.txt 8 байт: D1 82 D0 B5 D1 81 D1 82 ("тест" в кодировке UTF8)



Метод trace записал строку в файл в кодировке UTF8. Кодировка здесть играет роль только при записи в файл. К самой строке str она никакого отношения не имеет.


iPOJOstr.getBytes() // В 1.txt содержится 4 байта: F2 E5 F1 F2 ("тест", кодировка win1251)

Прочитайте javadoc к этому методу.
...
Рейтинг: 0 / 0
BlazeDS сериализует UTF8 в ANSI
    #37653988
iPOJO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, Вы правы, строки есть строки и BlazeDS тут не причем. Суть проблемы заключалась совсем в другом. Эта переданная строка участвовала в запросе:

Код: java
1.
2.
        in = new URL(str).openStream(); // Тут http сервер выдавал ошибку 400 (bad request), если в str были русские символы типа 'ш', 'ц'
                                                    // Видимо те символы, где старший байт равен D1, а не D0 в UTF8, а может я ошибаюсь



Однако, если строки (новый объект) создавались на стороне Java, то всё работало нормально даже с русскими символами ш ц и т.д.

Код: java
1.
        in = new URL("Стас Ткацкий").openStream(); // Всё норм




Пока я придумал выкрутиться таким образом:

Код: java
1.
        in = new URL(new URI(str).toASCIIString()).openStream();



Речь идет о публичном сервере Яндекс.склонятор.

http://nano.yandex.ru/project/inflect/%5D%D1%8F%D0%BD%D0%B4%D0%B5%D0%BA%D1%81.%D1%81%D0%BA%D0%BB%D0%BE%D0%BD%D1%8F%D1%82%D0%BE%D1%80]http://nano.yandex.ru/project/inflect/]яндекс.склонятор

пример

PS. Я не очень понимаю что там внутри этого Яндекс сервиса, может есть ещё варианты как сделать запрос?
...
Рейтинг: 0 / 0
BlazeDS сериализует UTF8 в ANSI
    #37654003
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
URLEncoder
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / BlazeDS сериализует UTF8 в ANSI
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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