|
|
|
Спасти файл, содержащий символы unicode
|
|||
|---|---|---|---|
|
#18+
Открываю файл Open nmFile For Output As #fnm и пишу в него текст, содержащий латинские буквы, цифры и ивритские символы Спасаю файл, открываю, вижу латинские буквы и цифры, а вместо иврита - вопросительные знаки. Делаю то же самое в NotePad и спасаю как unicode file - все в порядке. А как это сделать программно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2004, 17:03:46 |
|
||
|
Спасти файл, содержащий символы unicode
|
|||
|---|---|---|---|
|
#18+
Долго пытался понять от чего нужно спасать файл... Пришел к выводу что его все-таки нужно сохранить :) Когда пишешь в файл, конвертируй в юникод Код: plaintext Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2004, 18:29:37 |
|
||
|
Спасти файл, содержащий символы unicode
|
|||
|---|---|---|---|
|
#18+
Magnus23Долго пытался понять от чего нужно спасать файл... Пришел к выводу что его все-таки нужно сохранить :) Когда пишешь в файл, конвертируй в юникод Код: plaintext Magnus Понятно, что файлы надо спасать от таких пользователей, как я! Как перевести на русский save file? Огромное спасибо! Это - подходящее решение для меня и очень простое! Но все-же, если сейчас открываю сохраненный таким образом файл в NotePad, то текст записанный в Unicode предварен некоторыми символами. В то же время, если спасти файл из NotePad, как Unicode, такого эффекта нет. Можно ли это сделать программно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2004, 19:49:22 |
|
||
|
Спасти файл, содержащий символы unicode
|
|||
|---|---|---|---|
|
#18+
Да все так же, это я в начале неверное написал. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2004, 20:11:13 |
|
||
|
Спасти файл, содержащий символы unicode
|
|||
|---|---|---|---|
|
#18+
Нет, это не проблема! Я сообразил как написать правильно. И спрашиваю уже после получения файла с Unicode ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2004, 20:15:53 |
|
||
|
Спасти файл, содержащий символы unicode
|
|||
|---|---|---|---|
|
#18+
Хм. Что - то я под вечер туго соображаю. Если не ошобаюсь то символы иврита и так должны записываться двумя байтами... Откуда ты их читаешь? Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2004, 20:29:54 |
|
||
|
Спасти файл, содержащий символы unicode
|
|||
|---|---|---|---|
|
#18+
Читаю из таблицы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2004, 21:10:16 |
|
||
|
Спасти файл, содержащий символы unicode
|
|||
|---|---|---|---|
|
#18+
Картина совершенно аналогичная если я пишу в файл из кода Open nmFile For Output As #fnm Print #fnm, Format(!Language), "!" & String(255, "@")) где !Language поле из рекордсета (иврит) Спасаю : Close #fnm Открываю файл - там ???????? Открываю новый текстовый файл в NotePad. Пишу что-нибудь на иврите. Пытаюсь спасти файл, получаю сообщение, что написан unicode и для того, чтобы сохранить информацию я должн изменить опцию инкодинга. Если я не проделываю этого и спасаю файл, то при открытии файла так-же получаю ???????? Если же произвожу предложенную операцию, в файле вижу то, что писал на иврите. Если в коде пишу Print #fnm, Format(StrConv(!Language), "!" & String(255, "@"), vbUnicode) то при открытии файла в NotePad вижу свой иврит с набором чудесных символов. В принципе, они не мешают прочитать текст обратно в таблицу, но как-то не нравится и разобраться хочется... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2004, 21:24:27 |
|
||
|
Спасти файл, содержащий символы unicode
|
|||
|---|---|---|---|
|
#18+
Прошу прощения! Я не прав, читать это как раз-таки мешает, так как текст в файле оказывается неформатированным, или точнее, форматирован не по моему формату! Так что решение не совсем удовлетворительное. :(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2004, 21:29:30 |
|
||
|
Спасти файл, содержащий символы unicode
|
|||
|---|---|---|---|
|
#18+
Хм 2 раза. А ты пробовал при чтении делать обратно vbFromUnicode ? Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2004, 21:35:47 |
|
||
|
Спасти файл, содержащий символы unicode
|
|||
|---|---|---|---|
|
#18+
Magnus23Хм 2 раза. А ты пробовал при чтении делать обратно vbFromUnicode ? Magnus Конечно! Как же иначе! Дело в том, что эти символы, о которых я говорил (их много) сбивают полностью формат строки. Или что-то надо трюкачить, вместо запланированных 255 символов, предназанченных для поля, прописать раза в 2 больше или все же искать другое решение. Кстати, похоже, такой же эффект и с русским языком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2004, 21:49:20 |
|
||
|
Спасти файл, содержащий символы unicode
|
|||
|---|---|---|---|
|
#18+
У меня совсем не похоже. Русский сохраняется юникодом, в файле действительно второй байт левый, так и должно быть. Но прочитав строку и конвертировав ее обратно(vbFromUnicode) - получаю именно то что писал. Лады, кидай код сюда. Нето будет долго ловить твоих крокодилов. Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2004, 22:11:50 |
|
||
|
Спасти файл, содержащий символы unicode
|
|||
|---|---|---|---|
|
#18+
А что из кода бросить? Я по кускам как-будто все прописал. В одном месте только был не точен. когда сохраняю файл из кода, получаю не вопросительные знаки, а знаки с бльшими кодами аски. Я должен уйти. До завтра! Спасибо за помощь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2004, 22:32:20 |
|
||
|
Спасти файл, содержащий символы unicode
|
|||
|---|---|---|---|
|
#18+
бросить куски сохранения/чтения и так чтоб было понятно откуда берется и куда уодит переменная содержащая данные. И желательно пример самих данных(может я как нибудь извернусь и смогу его у себя попробовать) Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2004, 00:45:07 |
|
||
|
Спасти файл, содержащий символы unicode
|
|||
|---|---|---|---|
|
#18+
Видимо, я вчера к вечеру слегка "перегрелся". Действительно, все работает нормально. Пишу в файл: Print #1, "דימה" В NotePad получаю: "ãéîä" И если теперь читаю из файла Line Input #2, ll Получаю ll = "דימה" Что совершенно нормально. Прблема оказалась в другом. Если теперь я пишу в таблицу: CurrentDb.Execute "insert into t1 (name) values ('" & ll & "');" то в таблице получаю опять "ãéîä". И вот здесь не помогает ни CurrentDb.Execute "insert into t1 (name) values ('" & StrConv(ll, vbFromUnicode) & "');" ни CurrentDb.Execute "insert into t1 (name) values (StrConv(""" & ll & """, vbUnicode));" Ручной ввод в таблицу (@Arial Unicode MS) допускает вводить все подряд и английский и иврит и русский ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2004, 10:25:18 |
|
||
|
Спасти файл, содержащий символы unicode
|
|||
|---|---|---|---|
|
#18+
Докладываю, до чего дошел в изучении этой проблемы. Чтобы файл с unicode был таковым и окрывался в notepad, надо чтобы первые 2 байта были с кодами 255 и 254. UNICODE содержимое строки безвозвратно убивается при конкатенации с не-unicode строкой. А еще sql-сервер (если mssql) не станет воспринимать юникод, если нет предваряющего символа N перед юникодной строкой. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2004, 10:38:21 |
|
||
|
Спасти файл, содержащий символы unicode
|
|||
|---|---|---|---|
|
#18+
Бьюсь - ничего не выходит... :( Подготовить файл под Unicode нет проблем: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Файл test.lng создается. Если теперь в NotePad пишу в нем иврит и сохраняю, без лишних вопросов файл сохраняется и сохраняется введенная запись. Если же в этот файл писать программно (открывал файл в модах Append, Binary, Random) иврит (пользовался и Print и Write и Put) в файле иврит не нахожу. Не помогает и функция StrConv с vbFromUnicode или vbUnicode. Можете смеяться над моими этими экспериментами, но не работает! :(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2004, 13:50:48 |
|
||
|
Спасти файл, содержащий символы unicode
|
|||
|---|---|---|---|
|
#18+
Определилось, что это происходит на моем компе. На компе соседа все работает нормально! Даже то - что было написано на моем компе, его NotePad читает текст корректно. Но что происходит у меня? Может быть это связано с тем, что на компе установлено 4 языка? ХР ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2004, 15:39:10 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=32747465&tid=2168717]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
| others: | 196ms |
| total: | 361ms |

| 0 / 0 |
