Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DataOutputStream и UTF-8, хотелось бы прокосультироваться 
:(
    Опции темы
nogoody
Дата 16.10.2007, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 12.9.2007
Где: Смоленск

Репутация: нет
Всего: нет



Проблема глупая до безобразия...
простая программка....

...
String s="output.xml";
DataOutputStream bw = new DataOutputStream(new FileOutputStream(path));
bw.writeUTF("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
...

После чего пытаюсь в браузере открыть созданную xml:

Ошибка синтаксического анализа XML: неправильный 
Адрес:
строка 1, символ 1 

Почемц он не правильно формирует xml?
PM MAIL   Вверх
Metal_Heart
Дата 16.10.2007, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а почему бы и нет?
**


Профиль
Группа: Участник
Сообщений: 728
Регистрация: 31.3.2005
Где: Москва

Репутация: 4
Всего: 12



nogoody, причем здесь:
Цитата(nogoody @  16.10.2007,  12:17 Найти цитируемый пост)
String s="output.xml";

и где:
Код

  bw.flush();
  bw.close();  


приведи код полностью!


--------------------
 не стыдно учиться, а стыдно не учиться 
PM ICQ   Вверх
nogoody
Дата 16.10.2007, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 12.9.2007
Где: Смоленск

Репутация: нет
Всего: нет



Я разобрался вроде бы... тут дело было в следующем,

строчку bw.writeUTF((new String("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n")));

надо заменить на bw.write((new String("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n")).getBytes("UTF-8"));

Так все заработало, хотя интересно... writeUTF создавался специально для записи в UTF-8, а в начале файла возникают какие-то два непонятных байта... из-за этого XML и не читалась....
PM MAIL   Вверх
Platon
Дата 16.10.2007, 12:58 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



Это некая BOM mark, метка указывающая на то что содержимое находится в формате UTF-8 причем там есть с этими 2 байтами разные странности UCS-2 litle endian и UCS-2 big endian, сообщающие в каком порядке записаны 16битные символы.
PM MAIL ICQ   Вверх
_Michael
Дата 17.10.2007, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 23.6.2007
Где: з полонини

Репутация: 2
Всего: 6



http://ru.wikipedia.org/wiki/%D0%AE%D0%BD%....82.D0.BE.D0.B2
вот тут про ети странные два байта написано


--------------------
...не убивайся ни о чем - все временно,
хоть ночь темна но светлым днем беременна...

Саади
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0447 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.