
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
21.12.2004, 12:50
|
|||
|---|---|---|---|
смена кодировки |
|||
|
#18+
Есть такая проблема: вычитываю текст из rtf файда и кладу в базу. Но так как ртф не понимает юникода он использует какую-то свою кодировку для записи кирилицы (ansicpg1251). Мне нужно изыскать способ как либо обрабатывать ртф-ную кирилицу перед загрузкой в базу и превращать её в юникод либо обрабатывать запросы пользователя чтоб приводить их в тот же вид как и ртф. Пример: Слово "Динамика" ртф записывает как 'c4\'e8\'ed\'e0\'ec\'e8\'ea\'e0 . Мнеже необходимо научиться либо самому так меня кодировку либо производить обратный процесс ('c4\'e8\'ed\'e0\'ec\'e8\'ea\'e0 -> Динамика) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.12.2004, 13:35
|
|||
|---|---|---|---|
смена кодировки |
|||
|
#18+
Naug wrote: > Есть такая проблема: вычитываю текст из rtf файда и кладу в базу. Но так > как ртф не понимает юникода он использует какую-то свою кодировку для > записи кирилицы > (ansicpg1251). Мне нужно изыскать способ как либо обрабатывать ртф-ную > кирилицу перед загрузкой в базу и превращать её в юникод либо > обрабатывать запросы пользователя чтоб приводить их в тот же вид как и ртф. > > Пример: Слово "Динамика" ртф записывает как > 'c4\'e8\'ed\'e0\'ec\'e8\'ea\'e0 . Мнеже необходимо научиться либо самому > так меня кодировку либо производить обратный процесс > ('c4\'e8\'ed\'e0\'ec\'e8\'ea\'e0 -> Динамика) Можно написать свой легкий парсер и использовать класс Charset для перекодировки символов. ansicpg1251 это Windows-1251 codepage. Из поста вроде бы следует, что по этому RTF-у будет производиться поиск в базе. Тут присутствуют определенные трудности. Если например часть слова будет введена другим стилем, то в RTF будет вставлено описание стиля, и слово будет разорвано. В этом случае лучше текст просто приобразовывать в text/plain формат. Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.12.2004, 13:43
|
|||
|---|---|---|---|
смена кодировки |
|||
|
#18+
не, я уже умею вытаскивать чистый текст из ртф надо только выяснить как превращать стринг "'c4\'e8\'ed\'e0\'ec\'e8\'ea\'e0" в "Динамика" и наоборот ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.12.2004, 13:51
|
|||
|---|---|---|---|
|
|||
смена кодировки |
|||
|
#18+
Naugне, я уже умею вытаскивать чистый текст из ртф надо только выяснить как превращать стринг "'c4\'e8\'ed\'e0\'ec\'e8\'ea\'e0" в "Динамика" и наоборот а че тут сложного? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. и конечно же, вместо String желательно StringBuffer использовать. даже очень рекомендуется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.12.2004, 13:59
|
|||
|---|---|---|---|
смена кодировки |
|||
|
#18+
то есть всё в ручную ? честно говоря хардкодить всю кирилицу как-то не вдохновляет. Неужели нельзя использовать тот факт что мы знаем кодировку (1251) и перевести автоматически? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.12.2004, 14:17
|
|||
|---|---|---|---|
|
|||
смена кодировки |
|||
|
#18+
Naugто есть всё в ручную ? честно говоря хардкодить всю кирилицу как-то не вдохновляет. Неужели нельзя использовать тот факт что мы знаем кодировку (1251) и перевести автоматически? нельзя, потому что у тебя не символы в некой кодировке, а их шеснадцатиричное представление. так что зови музу - вдохновит :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.12.2004, 14:23
|
|||
|---|---|---|---|
|
|||
смена кодировки |
|||
|
#18+
можно каждые два символа переводить в byte(Integer.parseInt("ff", 16))... а из массива byte[] -> String(byte[], String charset) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.12.2004, 14:35
|
|||
|---|---|---|---|
смена кодировки |
|||
|
#18+
ага.... а как быть с тем фактом что часть знаков не в кирилице (названия, знаки припинания и тд) - ещё один сканер использовать - чтоб найти строчки удовлетворяющие патерну '\\\w\d ? Кстати, целесобразно вместо ареев хаши использовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.12.2004, 16:35
|
|||
|---|---|---|---|
смена кодировки |
|||
|
#18+
Во, наваял. dictionary это Hashtable заполненый кучей put (dictionary.put("e8","й");) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. P.S. как заставить idea понимать autoindent? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.12.2004, 16:46
|
|||
|---|---|---|---|
|
|||
смена кодировки |
|||
|
#18+
NaugP.S. как заставить idea понимать autoindent? а конкретнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.12.2004, 16:51
|
|||
|---|---|---|---|
смена кодировки |
|||
|
#18+
ну как в emacs, jbuilder чтоб по нажатию таба строчка устанавливалась так чтоб её было удобно читать. Чтоб if(){ code; } можно было автоматически превратить в Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.12.2004, 16:56
|
|||
|---|---|---|---|
|
|||
смена кодировки |
|||
|
#18+
Naugну как в emacs, jbuilder чтоб по нажатию таба строчка устанавливалась так чтоб её было удобно читать. Чтоб if(){ code; } можно было автоматически превратить в Код: plaintext 1. 2. [Ctrl + Alt + L] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.12.2004, 17:09
|
|||
|---|---|---|---|
смена кодировки |
|||
|
#18+
Спасибо возникла непонятка. Задаю в параметры "MIRU \'cc\'c8\'d0!\" на выходе получаю 3 M 3 I 3 R 3 U 3 1 М 1 И 1 Р 3 ! 3 " Вопрос: куда девается последняя \ ? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&tablet=1&tid=2153215]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
72ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 380ms |

| 0 / 0 |
