|
|
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Привет всем! Как можно сменить кодировку текстового документа из-под java, чтобы после этого при выводе(в java) содержимое осталось тем же(русским)? А то меня уже клинит!=( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 17:41 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
не ясно чего именно надо? Запишите данные из файла в другой файл с новой кодировкой, а затем переименуйте из? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 17:42 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Верно, в принципе. Мне для xml-файла нужно, чтобы потом вставить в субд oracle, использую кириллицу1251. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 18:04 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Ты читаешь локально XML и кладешь его в базу? Погляди, вдруг поможет: Чтение/запись файлов через Java ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 18:32 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Дык елы-палы, если это XML то какая разница? Вся работа с XML по идее строится на том, что в заголовке файла указывается кодировка, и при считывании все автоматом переводится во внутреннее представление в UTF-8. При выводе, опять же, надо указать желаемую кодировку или по умолчанию пойдет UTF. Работать с XML как с текстовым файлом -- моветон-с. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 18:46 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
АБ - яву не колышет какая там кодировка указана в загаловке xml - по умолчанию она всё читает в своей дефолтовой кодировке(зависит от системы) поэтому при io файлов надо указывать кодировку в которой они находятся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 18:58 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Да, Denis Popov, пока локально. Хорошо, посмотрю и попробую. Потом изложу. А насчет кодировки: есть xml-документы(дали мне их) с charset windows-1251(стандартная), и база с charset CLMSWIN1251. Тут мне еще другое не совсем ясно(в плане кодировок). Где-то на сайте про 1251 написано, что "я" (маленькая) с кодом 0xff, из-за нее могут быть проблемы при работе некоторых приложений из-за отсутствия 8 бита(т.е., я так понимаю,от 0 до 127, а не просто 8 бит установлен или нет). В моем случае при вставке ругается на "я". Но ведь 1251(0-255, 255-это "я") и CL8MSWIN1251 тоже байт до 255. Oracle9i(R1) ведь перекодирует символы входящие в свою кодировку. Хотя с другой стороны он их берет как 2 байта. Да, АБ, но если в utf, а затем снова в 1251, то может получится ХЪГШГИТЬА(что-то вроде этого). Например, при создании объекта String (на java) указываешь ему массив байтов и нужную кодировку(при преобразовании 1251->utf-8, например, но в этом случае будет набор вопросов). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2005, 20:11 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
А pl/sql в коде java использовать можно, как, например: executeUpdate("declare a SYS.XMLType ... begin ... end")? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2005, 15:07 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Можно, через CallableStatement. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2005, 15:48 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Слушай, Denis Popov, а в XMLType можно вставить док-т, указав его лок-ый адрес? Тоже бы очень здорово пригодилось!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2005, 19:19 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
SenderСлушай, Denis Popov, а в XMLType можно вставить док-т, указав его лок-ый адрес? Тоже бы очень здорово пригодилось!! А точнее: откуда, куда и чем надо загрузить в XMLType? ИМХО самое простое - положить документ в переменную типа CLOB в базе, а потом на его основе создать экземпляр XMLType - там есть соответствующий конструктор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2005, 19:24 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
положить документ в переменную типа CLOB в базе пока еще не пробовал.(Я же Sender) Про callableStatement не знал, хотя часто попадалось на глаза. Кстати, до сих пор бьюсь над более ранней проблемой, просто пришлось ее забросить из-за нехватки времени да сил тоже. Не в тему, немного. Я насчет работы с полями LOB(CLOB). Код(начало): Код: plaintext 1. 2. 3. Если без "for update nowait" то, при вставке в это поле, оно выдает, что данное поле(содержащее lob) должно быть заблокировано, но ведь ссылку получить надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2005, 15:23 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2005, 15:50 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Пробовал 1 способ, получось. 2 чуть позже. Кстати, а getlength() получается ограничен , т.е., если записать больше данных (строку из 100 символов или xml порядка kb) он выдаст не все, но спасает getchunksize(размер используемых порции данных). Тут тоже тонкость? Кстати, не помню, после чего именно, но может после изменения кодировки файла по-умолчанию(systemdefault), а потом возврат в исходное состояние русские буквы документа, используя поток i/o стали выдаваться "?" то что на русском(в консоли java),хотя до этого было нормально. Нарушение кодировки консоли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2005, 18:06 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
SoberПробовал 1 способ, получось. 2 чуть позже. Кстати, а getlength() получается ограничен , т.е., если записать больше данных (строку из 100 символов или xml порядка kb) он выдаст не все, но спасает getchunksize(размер используемых порции данных). Тут тоже тонкость? clob.getLength() возвращает long , ограничение его только в этом. В методе clob.getSubString() размерность имеет тип int , максимальное его значение может быть Integer.MAX_VALUE=2147483647. По-моему для большинства случаев хватит, тем более что в String ты все равно больше не запихнешь. Если же CLOB получился большего размера - пиши его куда-нибудь, в поток, к примеру. Читать можешь чанками, а можешь сам определить размер порции. Sober Кстати, не помню, после чего именно, но может после изменения кодировки файла по-умолчанию(systemdefault), а потом возврат в исходное состояние русские буквы документа, используя поток i/o стали выдаваться "?" то что на русском(в консоли java),хотя до этого было нормально. Нарушение кодировки консоли? Поясни, приведи пример файла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 12:53 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Проблему с выдачей вопросов обошел, используя объект String с парамерами массив байтов и стан.кодировка win1251(перекодировка), но тот код приведу: File inXML=new File("d:\\Dima\\oa_meteor_Planeta.xml"); InputStream inX=new FileInputStream(inXML); inX.read(buf);int i=0;cmd=""; while (buf !=0){cmd+=(char)buf;i++}; System.out.println("XML-document:\n"+cmd);cmd=null; Но все же выдает (содерж.clob) на 3/4: String outs=clob.getSubString(1,(int)clob.getChunkSize()); cmd=new String(outs.getBytes(),"utf-8"); System.out.println("The field clob contains\n"+clob.getChunkSize()+"\n"+cmd); Вот один из xml, которые в базе: <?xml version="1.0" encoding="windows-1251"?> <metaData xmlns="http://www.wmo.ch/www/metadata"><metadataFileIdentifier>http://cliware.meteo.ru/egfd_catalog/metadata/oa_goms_Planeta.xml</metadataFileIdentifier><metadataLanguage>ru</metadataLanguage><metadataContact><organisationName>ГУ Всероссийский НИИ гидрометеорологической информации - МЦД</organisationName><role>user</role><individualName>Хохлова Анна Владимировна</individualName><positionName>Зав. Отделом аэрологии</positionName><contactInfo><phone><voice>+7(08439)74-680</voice></phone><address><city>Королева,6 г.Обнинск</city><administrativeArea>Калужская</administrativeArea><postalCode>249035</postalCode><country>РОССИЯ</country><electronicMailAddress>anna@meteo.ru</electronicMailAddress></address></contactInfo></metadataContact><metadataDateStamp>2005-06-07</metadataDateStamp><metadataStandardName>WMO19115</metadataStandardName><metadataStandardVersion>0.2</metadataStandardVersion><identificationInfo><citation><resourceTitle>Государственный фонд Росгидромета. Спутниковые данные.</resourceTitle><resourceIdentifier>Монтажи спутниковых изображений (GOMS)</resourceIdentifier></citation><abstract>До 1998г. фотомонтажи спутниковых изображений из НИЦ "Планета" поступали на фотопленках. Начиная с 1998г. монтажи поступают на новых технических носителях (CD ROM). На них представлены монтажи спутниковых изображений, полученных с полярно-орбитальных или геостационарных спутников. Монтажи сопровождаются отдельными файлами, содержащими информацию о времени наблюдений.</abstract><pointOfContact><organisationName>ГУ Всероссийский НИИ гидрометеорологической информации - МЦД</organisationName><role>custodian</role><individualName>Шакирзянов Идрис Закирзянович</individualName><positionName>Начальник центра метаданных</positionName><contactInfo><phone><voice>+7(08439)74-158</voice><facsimile>+7(095)255-22-25</facsimile></phone><address><city>Королева, 6 г.Обнинск</city><administrativeArea>Калужская</administrativeArea><postalCode>249035</postalCode><country>РОССИЯ</country><electronicMailAddress>idr@meteo.ru</electronicMailAddress></address><onlineAddress>www.meteo.ru</onlineAddress></contactInfo></pointOfContact><resourceMaintenance><maintenanceAndUpdateFrequency>annually</maintenanceAndUpdateFrequency></resourceMaintenance><spatialRepresentationType>bitmap</spatialRepresentationType><dataCharacterSet>8859part5</dataCharacterSet><topicCategory>satelliteObservation</topicCategory><topicCategory>imageryBaseMapsEarthCover</topicCategory><descriptiveKeywords>Наблюдение</descriptiveKeywords><descriptiveKeywords>Спутник</descriptiveKeywords><referenceDate><date>1980-01-01</date><dateType>creationDate</dateType></referenceDate><dataExtent><geographicElement><geographicIdentifier>Европейская и Евроазиатская территории</geographicIdentifier></geographicElement></dataExtent><dataExtent><temporalElement><beginDateTime>1980-01-01</beginDateTime><dataFrequency>continual</dataFrequency></temporalElement></dataExtent></identificationInfo><distributionInfo><distributionFormat><formatName>jpg или raw</formatName></distributionFormat><transferOptions><offlineMedium>cdRom</offlineMedium></transferOptions></distributionInfo></metaData> Да и почему-то "И" он преобразовывает, т.е. вместо нее "??". Т.е, например, вместо НИИ-> Н????. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 15:30 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Sober Код: plaintext 1. 2. 3. 4. 5. За что ты его так?:) Sober Код: plaintext 1. 2. 3. Ты перепутал методы getChunkSize() и getLength() . SoberВот один из xml, которые в базе: сохранил я его на диске как C:/Tmp/oa_meteor_planeta.xml , в кодировке Cp1251 . А теперь кладу в базу: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 15:58 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Тоже пробовал, работает! А как изменить размер чанка? Кстати, тоже выводит не полностью! Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2005, 16:37 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
WinderТоже пробовал, работает! А как изменить размер чанка? Это переменная внутреннего представления LOB'ов в Оракле и определяется для поля в таблице. Можешь ею пользоваться, а можешь и нет. Кстати, по-моему рекомендуется оперировать несколькими чанками в записи. http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96591/adl10pst.htm#92792 Chunksize A chunk is one or more Oracle blocks. As noted previously, you can specify the chunk size for the LOB when creating the table that contains the LOB. This corresponds to the chunk size used by Oracle when accessing/modifying the LOB value. Part of the chunk is used to store system-related information and the rest stores the LOB value. The getchunksize function returns the amount of space used in the LOB chunk to store the LOB value. Use a Multiple of Chunksize to Improve Write Performance. You will improve performance if you execute write requests using a multiple of this chunk size. The reason for this is that the LOB chunk is versioned for every write operation. If all writes are done on a chunk basis, no extra or excess versioning is incurred or duplicated. If it is appropriate for your application, you should batch writes until you have enough for an entire chunk instead of issuing several LOB write calls that operate on the same LOB chunk. Winder Кстати, тоже выводит не полностью! Посмотри в FAQ , там сказано как вывести CLOB в файл. В консоль аналогично: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2005, 17:09 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Я вот подумал, разбираясь с lob-ми (clob в частности),в принципе не обязательно xml-документы хранить там, можно по идее в xmltype(не помню, правда, нужны ли права на использование пакетов pl/sql ) или, используя, так называемые uritypes(http/ftp/db). Важно записать 5 док-ов(3-10 kb, один из которых я уже приводил: oa_meteor_Planeta.xml) с код-ой windows-1251 и содержащий рус-ий текст, организовать по ним поиск. Например, по части содержимого, вводимого тобой, вывести документ, который его содержит, без прав на создание процедур/функций, директорий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2005, 19:19 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
SoberВажно записать 5 док-ов(3-10 kb, один из которых я уже приводил: oa_meteor_Planeta.xml) с код-ой windows-1251 и содержащий рус-ий текст, организовать по ним поиск. Есть такая штука как Oracle Text - одна из фичей базы, ранее входил в состав Oracle interMedia, теперь выделился оттуда. Он умеет делать контекстный поиск в том чиисле и по полям типа XMLType . Причем у нас Oracle Text используется для поиска по BLOB 'ам, в которых лежат документы любого из поддерживаемых форматов, м.б. XML тоже в их числе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2005, 19:37 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Про Oracle Text знаю. Я его вроде один раз использовал=) для пробы. А вот то, что его можно применить к blob-м, не знал. в которых лежат документы любого из поддерживаемых форматов. Это да, да и еще до 4 gb. Все-таки binary large object. Недавно встретил error типа "End of TNS data channel". Это при попытке записать из временного clob-а в поле таблицы=) не сталкивался(Используя один приведенных шаблонов)? Я так понимаю TNS-что-то вроде прослушки(связь с oracle) (канал связи). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2005, 15:38 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
SoberНедавно встретил error типа "End of TNS data channel". Это при попытке записать из временного clob-а в поле таблицы=) не сталкивался(Используя один приведенных шаблонов)? Я так понимаю TNS-что-то вроде прослушки(связь с oracle) (канал связи). http://download-west.oracle.com/docs/cd/B10501_01/network.920/a96580/glossary.htm#432232 Transparent Network Substrate (TNS) A foundation technology, built into the Oracle Net foundation layer that works with any standard network transport protocol. А что произошло - смотреть надо, alert.log на сервере, к примеру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2005, 15:50 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Обошел-таки тот error с сообщением "fetch out of sequence". То, о чем я писал выше. Надо было уст-ть в false setautocommit(false) и далее делать выборку с блокировкой строки "select * from <table> for update". Записал в базу(clob) 5 док-ов и вытащил, сохранив их на диске и пролем с кодировкой не было. Используя,конечно, символьные потоки i/o. В основном тот же код, но без использования CLOB.createTemporary. Какой тип индекса позоляет искать по обрывку фразы(слова/предложения)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2005, 17:50 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=33140726&tid=2151753]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
77ms |
get tp. blocked users: |
2ms |
| others: | 253ms |
| total: | 425ms |

| 0 / 0 |
