|
|
|
Locale problem, ASA
|
|||
|---|---|---|---|
|
#18+
Доброго всем времени суток. Может кто сталкивался с такой проблемой. Есть база в Калининграде (консолидирована) и в Утене (удалённая). В Калин. вся локалка на русском и сама база васползует 1251CYR. В Утене вся локалка на литовском но база васползует тоже 1251CYR для репликации между собой. Эта понятно )) . Возникла токая проблема, когда высылается сообщение с русским текстом в Утену по SMTP протоколу, то в Утене отображается не на русском. Посоветуйте как обойти эту проблему не меняя локалку (так как много что кружится на этом сервере) Благодарен за ранее. Модератор: я верю в силу ваших чувств, но матерится все же не нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2008, 12:49 |
|
||
|
Locale problem, ASA
|
|||
|---|---|---|---|
|
#18+
но если переключить локальные настройки то кирилицу видно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2008, 13:04 |
|
||
|
Locale problem, ASA
|
|||
|---|---|---|---|
|
#18+
Вот втом и проблема что переключить нельзя. Как тестировал в офисе то на двух русских локалках работает, замечятелно. Если переключить локалку то слово которое было отослано ранее останется не заменённым, так как оно сканвертировалось. На изменённую локаль надо высылать сообсчение повторно, тогда оно нармална сработает (не заменит русских символов). Надо както обойти. Проблема как я думаю састоит в СQЛ запросе который высылается по СМТП кодированным. И одконвертить зависит од лакали. Какта надо это обойти, но нзн как... Есть какие предложения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2008, 14:52 |
|
||
|
Locale problem, ASA
|
|||
|---|---|---|---|
|
#18+
ИМХО дело не в запросе. Отправляющая база формирует сообщение в тектстовом виде в той локали, которая на отправляющей базе. В СМТП оно кодируется и попадает как есть на отправляющей машине. При получении на получателе возможно происходит какое то перекодирование самой базой. Надо бы взглянуть на скрин. Как выглядит так называемая х@#я. Какая локаль стоит в винде у принимающей базы? Можете на отправляющей базе поставить Compression = 0, тогда отправляющая база не будет сжимать сообщения и они будут приходить в том виде, как отсылаются. Ну а там - смотрите ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2008, 17:19 |
|
||
|
Locale problem, ASA
|
|||
|---|---|---|---|
|
#18+
Понятно. Локаль как и писал више полнастю литовская. Вместо скрина напишу то что высылаю и то что сахраняетса в одолённой базе. " Обнавдён. ID= " получаю " iikiaeak. ID= " Вы пишете что праблема с базай. Может праблема в том, что я скопировал консолидированую базу на адалённый компютер и там сконфигуриравал заного? думаю нет, так как символы руские сахранились, тока проблема возникла когда принимаетса запрос высланный консолидированой базай. Что именно получаю написал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2008, 17:37 |
|
||
|
Locale problem, ASA
|
|||
|---|---|---|---|
|
#18+
Так, давай по пунктам. 1) Данные хранятся в консолидированной базе в какой кодировке? CP1251? 2) Какой charset указан в строке коннекта которым dbremote подключается к консолидированной базе? Если ни какой не указан - dbremote возьмет кодировку из OS на которой он запущен. И если кодировка в коннекте dbremote не совпадает с кодировкой сервера, текст будет перекодирован. Либо сервером (если у вас ASA9 и выше), либо ODBC драйвером если у вас ASA8 или ниже. 3) dbremote получив данные уже никогда не занимается перекодировкой, он ужимает данные встроенным архиватором и через SMTP/FTP/etc идет бинарный пакет, которому кодировки до лампочки. 4) Получающий dbremote распаковывает полученный пакет и превращает его в текст. А дальше повторяется тоже самое что на этапе отправления. Если у получающего dbremote в строке коннекта charset явно не указан, он будет равным локали ОС. И если итоговый charset для коннекта dbremote не совпадает с основной кодировкой получающей базы текст будет переконвертирован перед помещением в собственно базу. А теперь проследи путь своих данных и подумай на каком этапе, куда они переконвертируются... dbremote это обычный клиент, он ведет себя точно так же как и любая другая клиентская программа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2008, 17:42 |
|
||
|
Locale problem, ASA
|
|||
|---|---|---|---|
|
#18+
evigisВы пишете что праблема с базай. Может праблема в том, что я скопировал консолидированую базу на адалённый компютер и там сконфигуриравал заного?Что значит "сконфигруировал заново"? При простом копировании файла базы данные какими были, такими и останутся. А вот доступ к этим данным уже будет зависеть от приходящих к серверу клиентов. PS Орфографического словаря под рукой нет вообще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2008, 17:47 |
|
||
|
Locale problem, ASA
|
|||
|---|---|---|---|
|
#18+
White OwlТак, давай по пунктам. 1) Данные хранятся в консолидированной базе в какой кодировке? CP1251? 2) Какой charset указан в строке коннекта которым dbremote подключается к консолидированной базе? Если ни какой не указан - dbremote возьмет кодировку из OS на которой он запущен. И если кодировка в коннекте dbremote не совпадает с кодировкой сервера, текст будет перекодирован. Либо сервером (если у вас ASA9 и выше), либо ODBC драйвером если у вас ASA8 или ниже. 3) dbremote получив данные уже никогда не занимается перекодировкой, он ужимает данные встроенным архиватором и через SMTP/FTP/etc идет бинарный пакет, которому кодировки до лампочки. 4) Получающий dbremote распаковывает полученный пакет и превращает его в текст. А дальше повторяется тоже самое что на этапе отправления. Если у получающего dbremote в строке коннекта charset явно не указан, он будет равным локали ОС. И если итоговый charset для коннекта dbremote не совпадает с основной кодировкой получающей базы текст будет переконвертирован перед помещением в собственно базу. А теперь проследи путь своих данных и подумай на каком этапе, куда они переконвертируются... dbremote это обычный клиент, он ведет себя точно так же как и любая другая клиентская программа. Ваши пункты много говорят о решении проблемы ))) Так как уменья в одну сторону, то проблемы возникают тока в оддолённой. Ответы на ваши пункты. 1) 1251ЦиР 2) dbremote -o E:\DB\remote_log.txt -c "eng=???;uid=???;pwd=???" , как видна не указал..., если не трудно, какой нужна указать charset? 3) понятно 4) понятно Спасибо, уже чтото выясняется... Живём и учемся ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2008, 17:53 |
|
||
|
Locale problem, ASA
|
|||
|---|---|---|---|
|
#18+
White Owl evigisВы пишете что праблема с базай. Может праблема в том, что я скопировал консолидированую базу на адалённый компютер и там сконфигуриравал заного?Что значит "сконфигруировал заново"? При простом копировании файла базы данные какими были, такими и останутся. А вот доступ к этим данным уже будет зависеть от приходящих к серверу клиентов. PS Орфографического словаря под рукой нет вообще? Ползуюсь транслитом ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2008, 17:56 |
|
||
|
Locale problem, ASA
|
|||
|---|---|---|---|
|
#18+
charset забыл указать, извините cp1251 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2008, 17:58 |
|
||
|
Locale problem, ASA
|
|||
|---|---|---|---|
|
#18+
evigis2) dbremote -o E:\DB\remote_log.txt -c "eng=???;uid=???;pwd=???" , как видна не указал...,Ну так укажи. "eng=zzz;uid=aaa;pwd=bbb;charset=cp1251" и все. evigisесли не трудно, какой нужна указать charset?Да в принципе любой какой хочется :) Но надо следить чтобы оба dbremote (и отправляющий и получающий) жили на одной кодировке. В этом и есть главная проблема... А сами базы могут прекрасно жить и в разных кодировках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2008, 18:24 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=35409789&tid=2011504]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
137ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 440ms |

| 0 / 0 |
