|
|
|
Запись арабского языка в базу
|
|||
|---|---|---|---|
|
#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:16 |
|
||
|
Запись арабского языка в базу
|
|||
|---|---|---|---|
|
#18+
nvarchar - тип поля в базе должен быть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2007, 17:25 |
|
||
|
Запись арабского языка в базу
|
|||
|---|---|---|---|
|
#18+
да в самой базе SQL поле как раз nvarchar, я просто думаю что у меня Юникод уже в процессе обработки потерялся, надо как то из файла считать этот Юникод и донести его до базы, а как это сделать не знаю..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2007, 17:57 |
|
||
|
Запись арабского языка в базу
|
|||
|---|---|---|---|
|
#18+
Вот даже проще, есть уже в базе записи на арабском, считываю их и сразу вывожу с помощью MsgBox, вместо арабских слов одни знаки вопросов......может надо указывать какие то параметры и как то связывать с Unicode? Считываю очень просто ............. qwer=rs.Fields("arabskiy") .............. MsgBox qwer ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2007, 12:59 |
|
||
|
Запись арабского языка в базу
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. а вот вывод этой строки уже отдельная и непростая тема ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2007, 13:15 |
|
||
|
Запись арабского языка в базу
|
|||
|---|---|---|---|
|
#18+
Код: plaintext полезно почитать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2007, 13:19 |
|
||
|
Запись арабского языка в базу
|
|||
|---|---|---|---|
|
#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:18 |
|
||
|
Запись арабского языка в базу
|
|||
|---|---|---|---|
|
#18+
Konst_One Код: plaintext полезно почитать За ссылку спасибо, она действительно дельная, но там к сожалению все на английском, попробовал немного разобрался и понял что голова моя пошла кругом ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2007, 15:21 |
|
||
|
Запись арабского языка в базу
|
|||
|---|---|---|---|
|
#18+
можно попробовать по другому знакомо ли тебе это или можно xml данные после преобразования передавать в процедуру с параметром типа ntext внутри парсить xml и вносить в базу в нужное поле сам файл-xml преобразовывать каждый символ в код Unicode в VB это возможно и хранить новый xml как переменную для передачи в процедуру так ты не зависишь от системных языковых установок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2007, 20:31 |
|
||
|
Запись арабского языка в базу
|
|||
|---|---|---|---|
|
#18+
Вообще строка VB6 - это unicode. При чтении из файла как у тебя каждый байт текста преобразуется в unicode текущей локали (то бишь русский символ!) после чего помещается в эту строку уже в unicode. Получается что тебе строку с русским unicod-ом надо преобразовать в арабский unicode... Вообще - у тебя ведь на входе XML-файл - нафига ты его читаешь через Open? Используй DOM. И посмотри там насчет возможности получить данные в заданной локали (я не пробовал, но кажись это должно быть возможно. Можешь приаттачить такую XML-ку? А по большому счету - если подобное приложение сейчас пишется с нуля, то я бы предпочел перейти на VB.NET, иначе потом придется еще сильно извращаться с выводом символов на экран и прочими ограничениями старой Visual Studio связанными с подобной локализацией - оно тебе надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2007, 11:07 |
|
||
|
Запись арабского языка в базу
|
|||
|---|---|---|---|
|
#18+
Всем спасибо за помощь, я разобрался. Проблема была в том что хоть xml файл и выдает себя за UTF-8, однако все арабские слова в UTF-16, написал модуль преобразования UTF-8 в UTF-16 и все раработало. В базу пишется все на арабском, правда проблема с выводом на экран все же осталась......а на VB.NET переходить уже поздно....серверная часть ПО уже написана, теперь буду писать клиентскую часть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2007, 10:00 |
|
||
|
Запись арабского языка в базу
|
|||
|---|---|---|---|
|
#18+
Neznaika2007правда проблема с выводом на экран все же осталась......а на VB.NET переходить уже поздно....серверная часть ПО уже написана, теперь буду писать клиентскую часть. Игры со CharSet контрола и тем же StrConv... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2007, 10:51 |
|
||
|
|

start [/forum/topic.php?fid=60&fpage=245&tid=2164476]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 215ms |
| total: | 355ms |

| 0 / 0 |
