|
|
|
ну очень сложная задача для мосКа
|
|||
|---|---|---|---|
|
#18+
задача такова: есть могучая и великая БД, не буду говорить откуда она у меня и как досталась но есть, самая главная проблема в том, что сам сервер (а это Sybase) считает что хранит он данные в кодировке CP850 (эта кодировка не понимает русские символы), а данные которые хранятся имеют кодировку CP866 (даже и не спрашивайте почему это так, но это так) собственно вопрос как отображать русский при помощи Java (когда я делал интерфейс для этой БД на PHP я юзал iconv и был рад что работает, но в java так у меня не получается) подскажите хоть куда рыть то... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2012, 14:51:18 |
|
||
|
ну очень сложная задача для мосКа
|
|||
|---|---|---|---|
|
#18+
Куда-то сюда. http://manuals.sybase.com/onlinebooks/group-jcarc/jcg0520e/prjdbc/@Generic__BookTextView/2830;pt=2741 http://manuals.sybase.com/onlinebooks/group-jcarc/jcg0520e/prjdbc/@Generic__BookTextView/542;pt=476 Ключевые слова для гугла - sysbase jdbc encoding ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2012, 14:56:30 |
|
||
|
ну очень сложная задача для мосКа
|
|||
|---|---|---|---|
|
#18+
Вообще преобразование кодировок в Java родное: http://stackoverflow.com/questions/229015/encoding-conversion-in-java А как именно вы использовали iconv, с какими параметрами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2012, 14:57:43 |
|
||
|
ну очень сложная задача для мосКа
|
|||
|---|---|---|---|
|
#18+
Leonidv, там подключение через FreeTDS и получение дефолтной кодировки, без перекодирования, ну собственно я и перекодирую iconv('CP866', 'UTF-8', 'строка') ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2012, 15:02:44 |
|
||
|
ну очень сложная задача для мосКа
|
|||
|---|---|---|---|
|
#18+
Leonidv, собственно тут я тоже хотел сделать именно так но похоже jTDS сам преобразует кодировку, и получает кроказябры в итоге... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2012, 15:04:19 |
|
||
|
ну очень сложная задача для мосКа
|
|||
|---|---|---|---|
|
#18+
мне подсказали и делается этот изврат так: String s1 = new String(res.getString(i).getBytes("CP850"),"CP866"); если меня хоть кто-то ткнет носом почему именно так я просто незнаю расцелую его =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2012, 16:04:38 |
|
||
|
ну очень сложная задача для мосКа
|
|||
|---|---|---|---|
|
#18+
32338мне подсказали и делается этот изврат так: String s1 = new String(res.getString(i).getBytes("CP850"),"CP866"); если меня хоть кто-то ткнет носом почему именно так я просто незнаю расцелую его =) мне кажется, сибасе сама должна конвертировать кодировки на выдачу, достаточно указать в конфиг-файле этот параметр ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2012, 16:26:54 |
|
||
|
ну очень сложная задача для мосКа
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2012, 16:27:22 |
|
||
|
ну очень сложная задача для мосКа
|
|||
|---|---|---|---|
|
#18+
Это не проблема Java или СУБД. У Вас сервер ЗНАЕТ, что данные должны храниться в Cp850. Реально, Вы можете Выбрать в каком-либо клиентском приложении практически любую кодировку, подготовить там данные и загрузить их в БД. Но Сервер не знает в КАКОЙ РЕАЛЬНОЙ кодировке данные ему подставляются и он рассматривает входной поток байт в кодировке Cp850. Аналогично Java знает от Вашего Сервера, что на вход ей поступят данные в кодировке 850. Откуда ей знать о реальной ? Вот и приходится в таких случаях для строковых данных использовать getBytes. Накладно для СУБД хранить данные в UTF-8 вот и приходится извращаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2012, 20:11:08 |
|
||
|
ну очень сложная задача для мосКа
|
|||
|---|---|---|---|
|
#18+
Valery ShiskinЭто не проблема Java или СУБД. У Вас сервер ЗНАЕТ, что данные должны храниться в Cp850. Реально, Вы можете Выбрать в каком-либо клиентском приложении практически любую кодировку, подготовить там данные и загрузить их в БД. Но Сервер не знает в КАКОЙ РЕАЛЬНОЙ кодировке данные ему подставляются и он рассматривает входной поток байт в кодировке Cp850. Аналогично Java знает от Вашего Сервера, что на вход ей поступят данные в кодировке 850. Откуда ей знать о реальной ? Вот и приходится в таких случаях для строковых данных использовать getBytes. Накладно для СУБД хранить данные в UTF-8 вот и приходится извращаться. что накладного в хранении в утф-8 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2012, 22:00:30 |
|
||
|
ну очень сложная задача для мосКа
|
|||
|---|---|---|---|
|
#18+
Revision, еще бы великий sybase клиент понимал кодировку CP866 дк я бы ваще не парился =), но дело в том что он ее не знает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2012, 06:43:36 |
|
||
|
ну очень сложная задача для мосКа
|
|||
|---|---|---|---|
|
#18+
32338Revision, еще бы великий sybase клиент понимал кодировку CP866 дк я бы ваще не парился =), но дело в том что он ее не знает не может быть, чтобы он ее не понимал http://www.rusug.ru/index.php?tree=4&mode=view&id=75 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2012, 14:44:59 |
|
||
|
ну очень сложная задача для мосКа
|
|||
|---|---|---|---|
|
#18+
32338Revision, еще бы великий sybase клиент понимал кодировку CP866 дк я бы ваще не парился =), но дело в том что он ее не знает ах.. ты про клиента.. так можно задать, наверное, конверт из сибасе в клиент в той кодировке, которую клиент понимает и пускай трансформация делается базой данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2012, 14:45:54 |
|
||
|
ну очень сложная задача для мосКа
|
|||
|---|---|---|---|
|
#18+
для потомков оставлю небольшой коммент =) ежели у вас такая вот проблема то используйте стандартный драйвер jconn3 или jconn2 на этих тестировал все заработало, он нормально стал конвертить и туда и обратно jTDS не поддерживает кодировку CP866, но тут единственный обход, конвертить все ручками (шо на мой взгляд полнейшее издевательство проще пристрелить админа БД с этим извратом) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2012, 14:50:30 |
|
||
|
ну очень сложная задача для мосКа
|
|||
|---|---|---|---|
|
#18+
32338jTDS не поддерживает кодировку CP866, но тут единственный обход, конвертить все ручками (шо на мой взгляд полнейшее издевательство проще пристрелить админа БД с этим извратом) jTDS при работе с Sybase вообще какой-то кривой. Мы пытались его использовать, но в итоге перешли на jconn4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2012, 17:23:39 |
|
||
|
ну очень сложная задача для мосКа
|
|||
|---|---|---|---|
|
#18+
Leonidv, не знаю на счет как там кривость, у меня он работал без проблем, единственно что кодировку не понимает, а jconn3 я использую так как Sybase ну очень старый.... а jconn4 уже поддерживает Sybase ASE начиная с 12.5 так что рисковать я не хочу =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2012, 08:32:54 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37624188&tid=2131407]: |
0ms |
get settings: |
13ms |
get forum list: |
25ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
17ms |
get forum data: |
5ms |
get page messages: |
90ms |
get tp. blocked users: |
2ms |
| others: | 290ms |
| total: | 504ms |

| 0 / 0 |
