Почему корежит русские шрифты?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Почему корежит русские шрифты?

Сообщение Antonariy » 05.10.2009 (Пн) 15:51

Код: Выделить всё
Dim fso As New Scripting.FileSystemObject
Dim st As New ADODB.Stream
Dim fl As File
    st.Type = adTypeText
    st.Open
    For Each fl In fso.GetFolder("C:\xxx").Files
        st.Flush
        st.LoadFromFile fl.Path
        st.Charset = "utf-8"
        st.SaveToFile "C:\xxx\1\" & fl.Name
    Next
Вложения
utf.gif
(670 байт) Скачиваний: 55
Лучший способ понять что-то самому — объяснить это другому.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Почему корежит русские шрифты?

Сообщение iGrok » 05.10.2009 (Пн) 16:00

Antonariy писал(а):
Код: Выделить всё
Dim fso As New Scripting.FileSystemObject
Dim st As New ADODB.Stream
Dim fl As File
    st.Type = adTypeText
    st.Open
    For Each fl In fso.GetFolder("C:\xxx").Files
        st.Flush
        st.LoadFromFile fl.Path
        st.Charset = "utf-8"
        st.SaveToFile "C:\xxx\1\" & fl.Name
    Next

Ну ты б хоть файлики показал..
А вообще так корячит, когда хто-то (типа браузера) думает, что файл в utf8, а на самом деле он в 1251.
label:
cli
jmp label

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Почему корежит русские шрифты?

Сообщение Antonariy » 05.10.2009 (Пн) 16:49

Обычные html-файлы, win-1251.
А вообще так корячит, когда хто-то (типа браузера) думает, что файл в utf8, а на самом деле он в 1251.
Это случается, когда meta charset не соответствует физической кодировке, а в этом файле заголовка вообще не было.
Лучший способ понять что-то самому — объяснить это другому.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Почему корежит русские шрифты?

Сообщение iGrok » 05.10.2009 (Пн) 18:01

Хм. А ты сами файлы после перекодирования проверял? Кодировка действительно сменилась?
А кто их так отображает? IE?
А если указать в meta нужную кодировку?

Не знаю, может я и немного не в теме. Просто как-то маловато информации.
label:
cli
jmp label

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Почему корежит русские шрифты?

Сообщение Antonariy » 06.10.2009 (Вт) 9:52

Meta тут ни при чем, их так отображает Visual Studio .NET любой версии, причем говорит, что кодировка UTF-8 with signature. Пример прилагается.
Вложения
ReturnRecs_EN.zip
(1.03 Кб) Скачиваний: 41
Лучший способ понять что-то самому — объяснить это другому.

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Re: Почему корежит русские шрифты?

Сообщение Nord777 » 06.10.2009 (Вт) 11:08

Второй файл(ReturnRecs_EN_UTF.htm) в ANSI кодировке.
Вернее так:
Notepad++ говорит, что это UTF-8, но при этом отображает хрень вместо русских букв.
Если принудительно выставить ANSI - всё ок
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Почему корежит русские шрифты?

Сообщение Antonariy » 06.10.2009 (Вт) 11:53

Получается, ADODB.Stream не умеет конвертировать в UTF-8?
Лучший способ понять что-то самому — объяснить это другому.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Почему корежит русские шрифты?

Сообщение iGrok » 06.10.2009 (Вт) 11:58

Получается, что так.
Второй файл отличается от первого только тем, что содержит в начале признак utf (причём сразу оба - сигнатуры EF BB BF и FF FE).
А всё остальное там один-в-один.
label:
cli
jmp label

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Почему корежит русские шрифты?

Сообщение alibek » 06.10.2009 (Вт) 15:11

Lasciate ogni speranza, voi ch'entrate.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Почему корежит русские шрифты?

Сообщение Antonariy » 06.10.2009 (Вт) 15:39

alibek писал(а):http://forum.script-coding.info/viewtopic.php?id=220
Что-то не понял, как к этому прикрутить UTF.
Лучший способ понять что-то самому — объяснить это другому.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: Почему корежит русские шрифты?

Сообщение Andrey Fedorov » 07.10.2009 (Ср) 9:09

IMHO - где-то так надо:

Код: Выделить всё
    Dim fso As New Scripting.FileSystemObject
    Dim st As New ADODB.Stream, su As New ADODB.Stream

    st.Type = adTypeText
    st.Open
    st.Charset = "Windows-1251"
    st.LoadFromFile "D:\1\t1251.txt"
   
    su.Open
    su.Charset = "utf-8"
    su.WriteText st.ReadText
   
    su.SaveToFile "D:\1\tUTF-8.txt"
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Почему корежит русские шрифты?

Сообщение Antonariy » 07.10.2009 (Ср) 12:16

Сработало)
Лучший способ понять что-то самому — объяснить это другому.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Почему корежит русские шрифты?

Сообщение alibek » 07.10.2009 (Ср) 13:49

Мне кажется, что два стрима — это все-таки избыточно. Наверняка и с одним можно как-то обойтись.
Lasciate ogni speranza, voi ch'entrate.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: Почему корежит русские шрифты?

Сообщение Andrey Fedorov » 07.10.2009 (Ср) 16:31

alibek писал(а):Мне кажется, что два стрима — это все-таки избыточно. Наверняка и с одним можно как-то обойтись.


Ну если с промежуточной переменной... ;) Вряд ли оно лучше будет.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Bing-бот и гости: 93

    TopList