|
|
|
смена кодировки
|
|||
|---|---|---|---|
|
#18+
Есть такая проблема: вычитываю текст из rtf файда и кладу в базу. Но так как ртф не понимает юникода он использует какую-то свою кодировку для записи кирилицы (ansicpg1251). Мне нужно изыскать способ как либо обрабатывать ртф-ную кирилицу перед загрузкой в базу и превращать её в юникод либо обрабатывать запросы пользователя чтоб приводить их в тот же вид как и ртф. Пример: Слово "Динамика" ртф записывает как 'c4\'e8\'ed\'e0\'ec\'e8\'ea\'e0 . Мнеже необходимо научиться либо самому так меня кодировку либо производить обратный процесс ('c4\'e8\'ed\'e0\'ec\'e8\'ea\'e0 -> Динамика) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2004, 12:50 |
|
||
|
смена кодировки
|
|||
|---|---|---|---|
|
#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:35 |
|
||
|
смена кодировки
|
|||
|---|---|---|---|
|
#18+
не, я уже умею вытаскивать чистый текст из ртф надо только выяснить как превращать стринг "'c4\'e8\'ed\'e0\'ec\'e8\'ea\'e0" в "Динамика" и наоборот ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2004, 13:43 |
|
||
|
смена кодировки
|
|||
|---|---|---|---|
|
#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:51 |
|
||
|
смена кодировки
|
|||
|---|---|---|---|
|
#18+
то есть всё в ручную ? честно говоря хардкодить всю кирилицу как-то не вдохновляет. Неужели нельзя использовать тот факт что мы знаем кодировку (1251) и перевести автоматически? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2004, 13:59 |
|
||
|
смена кодировки
|
|||
|---|---|---|---|
|
#18+
Naugто есть всё в ручную ? честно говоря хардкодить всю кирилицу как-то не вдохновляет. Неужели нельзя использовать тот факт что мы знаем кодировку (1251) и перевести автоматически? нельзя, потому что у тебя не символы в некой кодировке, а их шеснадцатиричное представление. так что зови музу - вдохновит :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2004, 14:17 |
|
||
|
смена кодировки
|
|||
|---|---|---|---|
|
#18+
можно каждые два символа переводить в byte(Integer.parseInt("ff", 16))... а из массива byte[] -> String(byte[], String charset) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2004, 14:23 |
|
||
|
смена кодировки
|
|||
|---|---|---|---|
|
#18+
ага.... а как быть с тем фактом что часть знаков не в кирилице (названия, знаки припинания и тд) - ещё один сканер использовать - чтоб найти строчки удовлетворяющие патерну '\\\w\d ? Кстати, целесобразно вместо ареев хаши использовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2004, 14: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:35 |
|
||
|
смена кодировки
|
|||
|---|---|---|---|
|
#18+
NaugP.S. как заставить idea понимать autoindent? а конкретнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2004, 16:46 |
|
||
|
смена кодировки
|
|||
|---|---|---|---|
|
#18+
ну как в emacs, jbuilder чтоб по нажатию таба строчка устанавливалась так чтоб её было удобно читать. Чтоб if(){ code; } можно было автоматически превратить в Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2004, 16:51 |
|
||
|
смена кодировки
|
|||
|---|---|---|---|
|
#18+
Naugну как в emacs, jbuilder чтоб по нажатию таба строчка устанавливалась так чтоб её было удобно читать. Чтоб if(){ code; } можно было автоматически превратить в Код: plaintext 1. 2. [Ctrl + Alt + L] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2004, 16:56 |
|
||
|
смена кодировки
|
|||
|---|---|---|---|
|
#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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2004, 17:09 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=32837042&tid=2153215]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
105ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 239ms |
| total: | 458ms |

| 0 / 0 |
