Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 кодировка файлов при загрузке dbf  [new]
PlanB
Member

Откуда: Moscow
Сообщений: 2761
Добрый день!

Загрузка DBF-файлов производится в сервер некорректно. Исходник содержит русский текст, а в сервер грузятся иероглифы. Загружаю через OLEDB Provider for Visual Fox Pro. Перетыкивание Select collating sequence с machine на russian не помогает. Слышал, что надо менять какой-то байт в dbf-ке, но так и не разобрался как это делать. Поясните, пожалуйста.


+ select @@version
Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (Intel X86) Dec 28 2012 19:06:41 Copyright (c) Microsoft Corporation Express Edition on Windows NT 6.1 <X86> (Build 7601: Service Pack 1)


К сообщению приложен файл. Размер - 116Kb
3 апр 14, 09:51    [15825339]     Ответить | Цитировать Сообщить модератору
 Re: кодировка файлов при загрузке dbf  [new]
PlanB
Member

Откуда: Moscow
Сообщений: 2761
Прилагаю один из таких файлов для тестирования. Спасибо за ответы

К сообщению приложен файл (012012_N.DBF - 1Kb) cкачать
3 апр 14, 09:52    [15825351]     Ответить | Цитировать Сообщить модератору
 Re: кодировка файлов при загрузке dbf  [new]
PlanB
Member

Откуда: Moscow
Сообщений: 2761
есть вариант делать через CPCONVERT. насколько я понимаю, это команда фокспрошного драйвера и ее надо выполнять непосредственно при загрузке.
3 апр 14, 10:06    [15825435]     Ответить | Цитировать Сообщить модератору
 Re: кодировка файлов при загрузке dbf  [new]
Glory
Member

Откуда:
Сообщений: 104760
PlanB
Загрузка DBF-файлов производится в сервер некорректно.

Какую команду вы называете "загрузкой" ?
3 апр 14, 10:22    [15825525]     Ответить | Цитировать Сообщить модератору
 Re: кодировка файлов при загрузке dbf  [new]
PlanB
Member

Откуда: Moscow
Сообщений: 2761
Glory
PlanB
Загрузка DBF-файлов производится в сервер некорректно.

Какую команду вы называете "загрузкой" ?
задачи - импорт данных
3 апр 14, 11:21    [15825903]     Ответить | Цитировать Сообщить модератору
 Re: кодировка файлов при загрузке dbf  [new]
Glory
Member

Откуда:
Сообщений: 104760
PlanB
задачи - импорт данных

И что вы сделали там для указаним кодировки импортируемых данных ?
3 апр 14, 11:28    [15825953]     Ответить | Цитировать Сообщить модератору
 Re: кодировка файлов при загрузке dbf  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Этот файл не совсем корректный - байт кодовой страницы не установлен. Установите по смещению 0x1D значение 0x65.
3 апр 14, 11:30    [15825971]     Ответить | Цитировать Сообщить модератору
 Re: кодировка файлов при загрузке dbf  [new]
PlanB
Member

Откуда: Moscow
Сообщений: 2761
Владислав Колосов
Этот файл не совсем корректный - байт кодовой страницы не установлен. Установите по смещению 0x1D значение 0x65.
можно мне картинку, я так не понимаю =((
3 апр 14, 11:42    [15826095]     Ответить | Цитировать Сообщить модератору
 Re: кодировка файлов при загрузке dbf  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Возьмите любой двоичный (шестнадцатеричный) редактор и нем замените байт 0х00 на 0x65 по смещению 0x1D.
Или утилитку напишите типа
автор
ff = FOPEN("file")
FSEEK(ff,29)
FWRITE(ff,101)
FLOSE(ff)
3 апр 14, 11:51    [15826166]     Ответить | Цитировать Сообщить модератору
 Re: кодировка файлов при загрузке dbf  [new]
o-o
Guest
файл ДОС-овский, указывайте 866 кодировку и визард нормально покажет кириллицу.
я вот никакие байты не меняю, только кодировку правильную Import-визарду сообщаю, и все ок.
только нифига не пойму, что там у вас идет разделителем. и вроде не Fixed Width...

К сообщению приложен файл. Размер - 28Kb
3 апр 14, 11:57    [15826206]     Ответить | Цитировать Сообщить модератору
 Re: кодировка файлов при загрузке dbf  [new]
o-o
Guest
кодировка:

К сообщению приложен файл. Размер - 24Kb
3 апр 14, 12:00    [15826222]     Ответить | Цитировать Сообщить модератору
 Re: кодировка файлов при загрузке dbf  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
o-o, это не FlatFile, если использовать провайдера, то потребуется установить байт кодировки. Которая действительно DOS 866.
3 апр 14, 12:08    [15826297]     Ответить | Цитировать Сообщить модератору
 Re: кодировка файлов при загрузке dbf  [new]
o-o
Guest
Владислав Колосов,

у меня нету OLEDB Provider for Visual Fox Pro,
чем богаты, тем и рады :)
...если кто-то не может поменять кодировку в самом файле, а провайдер не дает ее выбрать,
то меняем провайдера на такого, чтобы выбор кодировки предоставлял
3 апр 14, 12:29    [15826445]     Ответить | Цитировать Сообщить модератору
 Re: кодировка файлов при загрузке dbf  [new]
Glory
Member

Откуда:
Сообщений: 104760
Владислав Колосов
если использовать провайдера, то потребуется установить байт кодировки.

разве в провайдере не задается collate ?
3 апр 14, 12:32    [15826462]     Ответить | Цитировать Сообщить модератору
 Re: кодировка файлов при загрузке dbf  [new]
o-o
Guest
Glory
Владислав Колосов
если использовать провайдера, то потребуется установить байт кодировки.

разве в провайдере не задается collate ?


а каким коллэйтом задать cp 866?
а если открыть сей файл в виндовской 1251, то вот та самая лабуда и вылезет.
кто не верит, пробуйте Вордом открыть по очереди в обеих кодировках
3 апр 14, 12:38    [15826506]     Ответить | Цитировать Сообщить модератору
 Re: кодировка файлов при загрузке dbf  [new]
Glory
Member

Откуда:
Сообщений: 104760
o-o
а каким коллэйтом задать cp 866?

Хм, таже Russian ???
3 апр 14, 12:39    [15826520]     Ответить | Цитировать Сообщить модератору
 Re: кодировка файлов при загрузке dbf  [new]
PlanB
Member

Откуда: Moscow
Сообщений: 2761
o-o, у меня фокспрошный провайдер, там смена кодировки ничего не дает
что у Вас за провайдер? моджет я его установлю и дело с концом?
3 апр 14, 12:40    [15826521]     Ответить | Цитировать Сообщить модератору
 Re: кодировка файлов при загрузке dbf  [new]
o-o
Guest
наглядненько

К сообщению приложен файл. Размер - 35Kb
3 апр 14, 12:43    [15826551]     Ответить | Цитировать Сообщить модератору
 Re: кодировка файлов при загрузке dbf  [new]
o-o
Guest
PlanB
o-o, у меня фокспрошный провайдер, там смена кодировки ничего не дает
что у Вас за провайдер? моджет я его установлю и дело с концом?


Flat file. но только для эксперимента. я вообще dbf-ы не гружу.
а не проще байты поменять, как посоветовал Владислав Колосов?
3 апр 14, 12:56    [15826661]     Ответить | Цитировать Сообщить модератору
 Re: кодировка файлов при загрузке dbf  [new]
PlanB
Member

Откуда: Moscow
Сообщений: 2761
o-o
PlanB
o-o, у меня фокспрошный провайдер, там смена кодировки ничего не дает
что у Вас за провайдер? моджет я его установлю и дело с концом?


Flat file. но только для эксперимента. я вообще dbf-ы не гружу.
а не проще байты поменять, как посоветовал Владислав Колосов?
ну, когда мне объяснили что именно надо поменять, то да, проще. дело в том, что в подобных темах (разумеется, они поднимались раньше, в т.ч. и на этом форуме) не дается подробной инструкции по смене байтов, а пишется просто про необходимость такой замены.

Большое спасибо всем за ответы!
3 апр 14, 14:00    [15827111]     Ответить | Цитировать Сообщить модератору
 Re: кодировка файлов при загрузке dbf  [new]
tmpByteReplaceByOffset
Guest
PlanB, было бы неплохо, если вы теперь дадите эту инструкцию для людей которые после вас эту тему нагуглят)
3 апр 14, 14:29    [15827317]     Ответить | Цитировать Сообщить модератору
 Re: кодировка файлов при загрузке dbf  [new]
o-o
Guest
ну, теперь кто эту тему найдет, будет знать, как действовать.
у кого нету hexadecimal editor, качаем бесплатный xvi32,
OLEDB Provider for Visual Fox Pro тоже лежит в интернете.
меняем на 0x65 по смещению 0x1D, рулит, подтверждаю:

К сообщению приложен файл. Размер - 29Kb
3 апр 14, 14:36    [15827370]     Ответить | Цитировать Сообщить модератору
 Re: кодировка файлов при загрузке dbf  [new]
o-o
Guest
Glory
Владислав Колосов
если использовать провайдера, то потребуется установить байт кодировки.

разве в провайдере не задается collate ?


задается. но это ЛИПА.
без того поправленного байта кодировки выбираешь Russian,
а показывает кракозябры все равно.
потому что ему все же надо CP в явном виде, я так думаю.
и считывает он CP из файла

мне думалось, что этот провайдер предложит список кириллических коллэйшенов как при установке сервера,
и мой вопрос был как раз про это: каким бы это коллэйшеном сервера описать 866 страницу.
а на деле там всего предлагают 2 коллэйшена: Russian и Machine.
Machine вообще смешно, на моем компе винда Eng и локаль далеко не Russia.
тем не менее, если даже выбрать Machine, а байт в файле установлен правильно, отобразит кириллицу
3 апр 14, 14:53    [15827462]     Ответить | Цитировать Сообщить модератору
 Re: кодировка файлов при загрузке dbf  [new]
Glory
Member

Откуда:
Сообщений: 104760
o-o
без того поправленного байта кодировки выбираешь Russian,

Так может надо попробовать другую ???
3 апр 14, 14:54    [15827473]     Ответить | Цитировать Сообщить модератору
 Re: кодировка файлов при загрузке dbf  [new]
o-o
Guest
Glory
o-o
без того поправленного байта кодировки выбираешь Russian,

Так может надо попробовать другую ???


2 Collating sequence предлагают: Russian + Machine, оба пробую на обоих файлах.
один файл -- 012012_N.DBF (original), при любом Collating sequence кракозябры.
второй -- 012012_N_copy.DBF -- с поправленным байтом кодировки.
выбираю Russian -- показывает кириллицу, выбираю Machine -- тоже кириллица.

вывод: рулит заветный байт, а Collating sequence там не знаю зачем.
может для каких других форматов
3 апр 14, 15:01    [15827513]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить