1

Тема: VBS: Открытие текстовых файлов с автоопределением кодировки

Задача: существуют текстовые файлы, часть из которых – в кодировке Windows-1251, а часть – в UTF-8, причём заранее неизвестно, какой файл – в какой кодировке. Нужно получить текст из них. Как это сделать так, чтобы при открытии автоматически определялась нужная кодировка (как в Блокноте, например)?

2

Re: VBS: Открытие текстовых файлов с автоопределением кодировки

В начале файлов в UTF-8 обычно стоят три байта: EF BB BF, которые и обозначают эту кодировку. Называются они "Byte Order Mark" (BOM).

3 (изменено: Евген, 2010-10-09 18:40:59)

Re: VBS: Открытие текстовых файлов с автоопределением кодировки

Пройденая тема пользуйтесь предварительно поиском...

Времени не хватает... :-(

4

Re: VBS: Открытие текстовых файлов с автоопределением кодировки

то, что текст не утф8 достаточно точно можно определить прочитав описание утф8

Я конечно далек от мысли... (с)

5 (изменено: Евген, 2010-10-10 20:09:14)

Re: VBS: Открытие текстовых файлов с автоопределением кодировки

Ссылку в студию, будем вместе изучать...

Времени не хватает... :-(

6 (изменено: Л. М. Гога, 2010-10-10 20:48:17)

Re: VBS: Открытие текстовых файлов с автоопределением кодировки

У меня получилось так (фрагмент кода):

For Each oFile In oFolder.Files
  With oADODBStream
    .Open
    .Charset = "Windows-1251"
    .LoadFromFile (oFile)
    sHeader = .ReadText(2)
    .Position = 0
    Select Case sHeader
      Case "п»"
        .Charset = "UTF-8"
      Case "яю"
        .Charset = "Unicode"
    End Select
    .ReadText
    .Close
  End With
Next

Вроде работает. По крайней мере, в пределах мне необходимого.

7

Re: VBS: Открытие текстовых файлов с автоопределением кодировки

Реально рад, если Вас действительно устраивает Ваше решение.

Времени не хватает... :-(

8

Re: VBS: Открытие текстовых файлов с автоопределением кодировки

да уж, решение действительно конгениальное

Я конечно далек от мысли... (с)

9

Re: VBS: Открытие текстовых файлов с автоопределением кодировки

Если работает, то какие претензии? А если есть таковые, то огласите.

10

Re: VBS: Открытие текстовых файлов с автоопределением кодировки

"яю это юникодовский текст ?"
"п» а это формат преобразования юникода ?"

Я конечно далек от мысли... (с)

11

Re: VBS: Открытие текстовых файлов с автоопределением кодировки

"яю" — это BOM кодировки UTF-16LE, которую в Windows принято называть Юникодом.
"п»" — это два первых байта из BOM для UTF-8.

Подробнее можете изложить, что Вас смущает?

12

Re: VBS: Открытие текстовых файлов с автоопределением кодировки

ну да ну да
а это какая кодировка ?
╨Т╨░╤Б╤П

Я конечно далек от мысли... (с)

13

Re: VBS: Открытие текстовых файлов с автоопределением кодировки

по методу получается ну никак ни ютифи-8/16

Я конечно далек от мысли... (с)

14

Re: VBS: Открытие текстовых файлов с автоопределением кодировки

smaharbA пишет:

а это какая кодировка ?

Не знаю. Может, Вы подскажете? Или сами не знаете?

15

Re: VBS: Открытие текстовых файлов с автоопределением кодировки

А как же методика "яю - п»" ?

Я конечно далек от мысли... (с)

16

Re: VBS: Открытие текстовых файлов с автоопределением кодировки

А при чём она тут?

17

Re: VBS: Открытие текстовых файлов с автоопределением кодировки

А как же мене быть с приведенным содержанием файла - так и не узнаю, что за кодировка ?
код мене выдает какие то буковы и знаки подчеркивания, да еще градусы...

Я конечно далек от мысли... (с)

18

Re: VBS: Открытие текстовых файлов с автоопределением кодировки

Думаю, одно из двух — либо узнаете, либо нет. Вы про какой код говорите? Тот, что выше, ничего никуда не выдаёт. А про Ваш Вам лучше знать, мне его отсюда не видно.

19 (изменено: smaharbA, 2010-10-11 17:01:48)

Re: VBS: Открытие текстовых файлов с автоопределением кодировки

Вопрос не праздный, вопрос про то - "Если работает, то какие претензии? А если есть таковые, то огласите."
а по сути "спора" - сперва признайте лично себе, что не все так просто - после подумайте, а уж потом возражайте (это не стеб и не нравоучение)

Я конечно далек от мысли... (с)

20

Re: VBS: Открытие текстовых файлов с автоопределением кодировки

Дело в том, что возражать мне пока что не на что. Вы сформулируйте внятно то, что хотите сказать. Без философии.

21

Re: VBS: Открытие текстовых файлов с автоопределением кодировки

smaharbA пишет:

а это какая кодировка ?

╨Т╨░╤Б╤П

UTF-8, ошибочно прочтённый как OEM в cp866. Ну и что? Речь выше шла про распознавание кодировки при наличии в файле BOM, не более того. А иначе всяко яко придётся гадать по частотам символов. И всё равно толку может быть мало. Например, может быть файл реестра в UTF-16, внутри которого значения строк в UTF-8, в OEM и KOI-8.

Понятно, что в коде есть кое-что лишнего, но, как уже упоминали выше — работает.

22

Re: VBS: Открытие текстовых файлов с автоопределением кодировки

для определения что нет кодировки утф-8/16 не надо никаких гаданий по частоте

Я конечно далек от мысли... (с)

23

Re: VBS: Открытие текстовых файлов с автоопределением кодировки

Предложите код.

24

Re: VBS: Открытие текстовых файлов с автоопределением кодировки

В тему.