Что нового

[Данные, строки] Иероглифы при сохранении в файл

Tapok

Новичок
Сообщения
204
Репутация
0
</b>Видимо снимаю вопрос, в Блокноте все открывается корректно, без иероглифов. Иероглифы почему-то в Notepad++.</b>

Не могу понять, в чем проблема.
В консоль русские буквы выводятся корректно, а в файл пишутся с кракозябрами :-\

Код:
Код:
#include <File.au3>
#include <Array.au3>

$hFile = FileOpen(@ScriptDir & '\sootv.txt', 0)

$FileList=_FileListToArray("d:\project\html_0", "*.txt", 1)
If @error=4 Then
    MsgBox (0,"","Файлы/папки не найдены.")
    Exit
 EndIf

Dim $aTable[][] = _
    [ _
        ['9.8.87', 'Ягоды'], _
        ['4.1', 'Фрукты'], _
        ['4.1.15', 'Овощи'], _
	['1', 'Один'], _
        ['2', 'Два'], _
	['3', 'Три'], _
        ['4', 'Четыре'], _
        ['5', 'Пять'], _
        ['6', 'Шесть'], _
        ['7', 'Семь'], _
        ['8', 'Восемь'] _
    ]

$sSpan = '<span ID="ACH-LINK" class="pic_ill/picture/Илл.%s.%s.png_name_Илл.^%s.^%s" title="">%s</span>'
$sFind = '(см. илл. %s)'

For $j = 1 To $FileList[0] Step 1

$sString=FileRead("d:\project\html_0\"&$FileList[$j])

For $i = 0 To UBound($aTable) - 1
    $sFindFrmtd = StringFormat($sFind, $aTable[$i][0])

    $sString = StringReplace($sString, _
        $sFindFrmtd, _
        StringFormat($sSpan, $aTable[$i][0], $aTable[$i][1], $aTable[$i][0], $aTable[$i][1], $sFindFrmtd))
Next

ConsoleWrite($sString & @LF)

FileWrite("d:\project\html\"&$FileList[$j], $sString & @LF)

Next


Выводится в консоль:
<p>1.3.4 Заголовок</p>
<p>Подзаголовок 1 </p>
<p>Текст 1</p>
<p>Подзаголовок 2 </p>
<p>Начало текста <span ID="ACH-LINK" class="pic_ill/picture/Илл.4.1.15.Овощи.png_name_Илл.^4.1.15.^Овощи" title="">(см. илл. 4.1.15)</span> окончание текста. </p>
<p>Начало текста <span ID="ACH-LINK" class="pic_ill/picture/Илл.4.1.Фрукты.png_name_Илл.^4.1.^Фрукты" title="">(см. илл. 4.1)</span> окончание текста. </p>
<p>Начало текста <span ID="ACH-LINK" class="pic_ill/picture/Илл.9.8.87.Ягоды.png_name_Илл.^9.8.87.^Ягоды" title="">(см. илл. 9.8.87)</span> окончание текста. </p>
<p>Подзаголовок 3 </p>
<p>Следующий текст <span ID="ACH-LINK" class="pic_ill/picture/Илл.9.8.87.Ягоды.png_name_Илл.^9.8.87.^Ягоды" title="">(см. илл. 9.8.87)</span>.</p>

<p>Следующий текст <span ID="ACH-LINK" class="pic_ill/picture/Илл.1.Один.png_name_Илл.^1.^Один" title="">(см. илл. 1)</span>.</p>
<p>Следующий текст <span ID="ACH-LINK" class="pic_ill/picture/Илл.2.Два.png_name_Илл.^2.^Два" title="">(см. илл. 2)</span>.</p>
<p>Следующий текст <span ID="ACH-LINK" class="pic_ill/picture/Илл.3.Три.png_name_Илл.^3.^Три" title="">(см. илл. 3)</span>.</p>
<p>Следующий текст <span ID="ACH-LINK" class="pic_ill/picture/Илл.4.Четыре.png_name_Илл.^4.^Четыре" title="">(см. илл. 4)</span>.</p>
<p>Следующий текст <span ID="ACH-LINK" class="pic_ill/picture/Илл.5.Пять.png_name_Илл.^5.^Пять" title="">(см. илл. 5)</span>.</p>
<p>Следующий текст <span ID="ACH-LINK" class="pic_ill/picture/Илл.6.Шесть.png_name_Илл.^6.^Шесть" title="">(см. илл. 6)</span>.</p>
<p>Следующий текст <span ID="ACH-LINK" class="pic_ill/picture/Илл.7.Семь.png_name_Илл.^7.^Семь" title="">(см. илл. 7)</span>.</p>
<p>Следующий текст <span ID="ACH-LINK" class="pic_ill/picture/Илл.8.Восемь.png_name_Илл.^8.^Восемь" title="">(см. илл. 8)</span>.</p>

Выводится в файл (почему-то в формате Macintosh):
<p>1.3.4 «аголовок</p>
<p>ѕодзаголовок 1 </p>
<p>“екст 1</p>
<p>ѕодзаголовок 2 </p>
<p>Ќачало текста <span ID="ACH-LINK" class="pic_ill/picture/»лл.4.1.15.ќвощи.png_name_»лл.^4.1.15.^ќвощи" title="">(см. илл. 4.1.15)</span> окончание текста. </p>
<p>Ќачало текста <span ID="ACH-LINK" class="pic_ill/picture/»лл.4.1.‘рукты.png_name_»лл.^4.1.^‘рукты" title="">(см. илл. 4.1)</span> окончание текста. </p>
<p>Ќачало текста <span ID="ACH-LINK" class="pic_ill/picture/»лл.9.8.87.ягоды.png_name_»лл.^9.8.87.^ягоды" title="">(см. илл. 9.8.87)</span> окончание текста. </p>
<p>ѕодзаголовок 3 </p>
<p>—ледующий текст <span ID="ACH-LINK" class="pic_ill/picture/»лл.9.8.87.ягоды.png_name_»лл.^9.8.87.^ягоды" title="">(см. илл. 9.8.87)</span>.</p>

<p>—ледующий текст <span ID="ACH-LINK" class="pic_ill/picture/»лл.1.ќдин.png_name_»лл.^1.^ќдин" title="">(см. илл. 1)</span>.</p>
<p>—ледующий текст <span ID="ACH-LINK" class="pic_ill/picture/»лл.2.ƒва.png_name_»лл.^2.^ƒва" title="">(см. илл. 2)</span>.</p>
<p>—ледующий текст <span ID="ACH-LINK" class="pic_ill/picture/»лл.3.“ри.png_name_»лл.^3.^“ри" title="">(см. илл. 3)</span>.</p>
<p>—ледующий текст <span ID="ACH-LINK" class="pic_ill/picture/»лл.4.„етыре.png_name_»лл.^4.^„етыре" title="">(см. илл. 4)</span>.</p>
<p>—ледующий текст <span ID="ACH-LINK" class="pic_ill/picture/»лл.5.ѕ¤ть.png_name_»лл.^5.^ѕ¤ть" title="">(см. илл. 5)</span>.</p>
<p>—ледующий текст <span ID="ACH-LINK" class="pic_ill/picture/»лл.6.Ўесть.png_name_»лл.^6.^Ўесть" title="">(см. илл. 6)</span>.</p>
<p>—ледующий текст <span ID="ACH-LINK" class="pic_ill/picture/»лл.7.—емь.png_name_»лл.^7.^—емь" title="">(см. илл. 7)</span>.</p>
<p>—ледующий текст <span ID="ACH-LINK" class="pic_ill/picture/»лл.8.¬осемь.png_name_»лл.^8.^¬осемь" title="">(см. илл. 8)</span>.</p>

Читаемый файл в кодировке UTF-8
Код:
$sString=FileRead("d:\project\html_0\"&$FileList[$j])

Я как-то не так в файл вывожу?

Видимо снимаю вопрос, в Блокноте все открывается корректно, без иероглифов. Иероглифы почему-то в Notepad++.
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Попробуйте заменить эту строку
Код:
FileWrite("d:\project\html\"&$FileList[$j], $sString & @LF)


Вот этими:
Код:
$hWriteFile = FileOpen("d:\project\html\"&$FileList[$j], 2)
FileWrite($hWriteFile, $sString & @CRLF)
FileClose($hWriteFile)


Если также и останется - поэксперементируйте с флагами кодировки функции FileOpen.
 
Верх