
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
12.02.2007, 17:16
|
|||
|---|---|---|---|
|
|||
Запись арабского языка в базу |
|||
|
#18+
Здравствуйте, прошу помочь решить мне одну проблему. У меня есть xml файл, он в кодировке UTF-8, часть информации в нем на арабском языке, мне нужно обработать программно этот файл и записать найденную информацию на арабском языке в базу SQL. Я сначала присваиваю переменной содержимое XML файла Open "C:\....." For Input As #1 While Not EOF(1) Line Input #1, xml Wend Close #1 Дальше я пишу обработчик, в котором в итоге присваиваю переменной arab информацию на арабском языке, после этого эту информацию пишу в базу SQL. Однако в базе вместо арабского одни корявые символы. Даже если я в самой программе вывожу в текстовом поле арабскую информацию, тоже одни корявые символы. Подскажите пожалуйста, как нужно написать, чтобы в итоге в базе SQL были действительно слова на арабском языке! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.02.2007, 17:25
|
|||
|---|---|---|---|
Запись арабского языка в базу |
|||
|
#18+
nvarchar - тип поля в базе должен быть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.02.2007, 17:57
|
|||
|---|---|---|---|
|
|||
Запись арабского языка в базу |
|||
|
#18+
да в самой базе SQL поле как раз nvarchar, я просто думаю что у меня Юникод уже в процессе обработки потерялся, надо как то из файла считать этот Юникод и донести его до базы, а как это сделать не знаю..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.02.2007, 12:59
|
|||
|---|---|---|---|
|
|||
Запись арабского языка в базу |
|||
|
#18+
Вот даже проще, есть уже в базе записи на арабском, считываю их и сразу вывожу с помощью MsgBox, вместо арабских слов одни знаки вопросов......может надо указывать какие то параметры и как то связывать с Unicode? Считываю очень просто ............. qwer=rs.Fields("arabskiy") .............. MsgBox qwer ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.02.2007, 13:15
|
|||
|---|---|---|---|
Запись арабского языка в базу |
|||
|
#18+
Код: plaintext 1. 2. 3. а вот вывод этой строки уже отдельная и непростая тема ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.02.2007, 13:19
|
|||
|---|---|---|---|
Запись арабского языка в базу |
|||
|
#18+
Код: plaintext полезно почитать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.02.2007, 15:18
|
|||
|---|---|---|---|
|
|||
Запись арабского языка в базу |
|||
|
#18+
Konst_One Код: plaintext 1. 2. 3. а вот вывод этой строки уже отдельная и непростая тема Попробовал такую строчку, считываю информацию, тут же пишу в базу обратно, получается ахинея.....но что интересно если считать как: s=StrConv(rs.Fields("arabskiy"),vbUnicode) , а затем обратно записать ....... rs.Fields("arabskiy")=StrConv(s,vbFromUnicode) то считанная информация ложится в базу на арабском, как оттуда и взятая, еще интересен тот факт, что даже не используя StrConv, используя ....... s=rs.Fields("arabskiy") ......... rs.Fields("arabskiy")=s Юникод не теряется и считанные данные приходят обратно в базу без изменений. Однако если я считываю информацию из XML файла как: Open "C:\......" For Input As #1 While Not EOF(1) Line Input #1, xml Wend Close #1 то если записать в базу содержимое переменной xml rs.Fields("arabskiy")=xml то в базе вместо арабских слов знаки вопроса.... Хотелось бы узнать, как можно прочитать файл XML и присвоить переменной содержимое этого файла, чтобы Юникод сохранился. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.02.2007, 15:21
|
|||
|---|---|---|---|
|
|||
Запись арабского языка в базу |
|||
|
#18+
Konst_One Код: plaintext полезно почитать За ссылку спасибо, она действительно дельная, но там к сожалению все на английском, попробовал немного разобрался и понял что голова моя пошла кругом ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.02.2007, 20:31
|
|||
|---|---|---|---|
Запись арабского языка в базу |
|||
|
#18+
можно попробовать по другому знакомо ли тебе это или можно xml данные после преобразования передавать в процедуру с параметром типа ntext внутри парсить xml и вносить в базу в нужное поле сам файл-xml преобразовывать каждый символ в код Unicode в VB это возможно и хранить новый xml как переменную для передачи в процедуру так ты не зависишь от системных языковых установок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.02.2007, 11:07
|
|||
|---|---|---|---|
Запись арабского языка в базу |
|||
|
#18+
Вообще строка VB6 - это unicode. При чтении из файла как у тебя каждый байт текста преобразуется в unicode текущей локали (то бишь русский символ!) после чего помещается в эту строку уже в unicode. Получается что тебе строку с русским unicod-ом надо преобразовать в арабский unicode... Вообще - у тебя ведь на входе XML-файл - нафига ты его читаешь через Open? Используй DOM. И посмотри там насчет возможности получить данные в заданной локали (я не пробовал, но кажись это должно быть возможно. Можешь приаттачить такую XML-ку? А по большому счету - если подобное приложение сейчас пишется с нуля, то я бы предпочел перейти на VB.NET, иначе потом придется еще сильно извращаться с выводом символов на экран и прочими ограничениями старой Visual Studio связанными с подобной локализацией - оно тебе надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.02.2007, 10:00
|
|||
|---|---|---|---|
|
|||
Запись арабского языка в базу |
|||
|
#18+
Всем спасибо за помощь, я разобрался. Проблема была в том что хоть xml файл и выдает себя за UTF-8, однако все арабские слова в UTF-16, написал модуль преобразования UTF-8 в UTF-16 и все раработало. В базу пишется все на арабском, правда проблема с выводом на экран все же осталась......а на VB.NET переходить уже поздно....серверная часть ПО уже написана, теперь буду писать клиентскую часть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.02.2007, 10:51
|
|||
|---|---|---|---|
Запись арабского языка в базу |
|||
|
#18+
Neznaika2007правда проблема с выводом на экран все же осталась......а на VB.NET переходить уже поздно....серверная часть ПО уже написана, теперь буду писать клиентскую часть. Игры со CharSet контрола и тем же StrConv... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=60&mobile=1&tid=2164476]: |
0ms |
get settings: |
11ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
191ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
| others: | 230ms |
| total: | 544ms |

| 0 / 0 |
