Что нового

Выбор кодировки

dr.room

Новичок
Сообщения
283
Репутация
0
Всем привет
У меня иногда сбивается кодировка, из за того что некоторые части кода копирую и вставляю через Notepad++. В Notepad++ просто есть система закладок + возможность удобного выделения больших фрагментов кода

Но AutoIt, потом, иногда, открывает тот же документ с крякозябликами, хотя в начале было всё ок. Помогает перевод кодировки в "UTF-8 без бом".
Хотя первоначально - кодировка была в "UTF-8" . При этом - просто взять и перевести в прежнюю кодировку т.е. в "UTF-8" даёт результат только до закрытия документа. После повторного открытия - опять крякозяблики: кодировка сбивается.

Т.е. в "UTF-8 без бом" -AutoIt сохраняет. В "UTF-8" - нет
Отчего так происходит и насколько плохо менять кодировки с "UTF-8" на "UTF-8 без бом"?
Спасибо.
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Сделай скрин, как ты Autoit открываешь документ.
 
Автор
D

dr.room

Новичок
Сообщения
283
Репутация
0
Если как открываю документ, то вроде обычно - перетаскиваю документ на значок SciTE Editor, что закреплён на панель инструментов Total Commander ...
 

Вложения

  • Крякозяблики.png
    Крякозяблики.png
    9.5 КБ · Просмотры: 24
  • Потеря кодировки.png
    Потеря кодировки.png
    12.7 КБ · Просмотры: 25

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Похоже на то этот редактор не может автоматически определять кодировку. И эти пункты кажется не перекодируют файл, а просто переключают текущее отображение.
Если я прав, то поможет Notepad++ пункт преобразовать в UTF-8 без bom но потом все равно каждый раз нужно переключать, что не очень удобно, поэтому я отказался от него и поставил вот это http://autoit-script.ru/index.php?topic=18986.0 В нем ставишь пункт tools->settings->Auto Detect UTF8 (without BOM) и забываешь о проблемах с кодировками.
 
A

Alofa

Гость
dr.room
Если вы пользуетесь полной штатной версией редактора SciTE, то откройте "...\AutoIt3\SciTE\SciTEUser.properties", найдите там следующие строки:
Код:
#code.page=65001
code.page=0
... и просто поменяйте комментарий местами.

И еще, на счет Notepad++:
ff407ed72bd29296f8213db7e5c824a2.png
 
Автор
D

dr.room

Новичок
Сообщения
283
Репутация
0
@Alofa
Спасибо, Alofa
Есть пара дополнительных вопросов
1. SciTE использую сейчас штатный, а вот стиль оформления - изменён (прикрепляю). Правильно ли будет просто дописать в нём строку, где нибудь: code.page=65001
2. Если верить ребятам из Редмонда то вы предлагаете применить кодировку SciTE UTF-8
а для Notepad++: UTF-8 без бом.
Не будет ли опять какого-то казуса, может для Notepad++ также применить UTF-8, если такая возможность имеется в настройках?
 

Вложения

  • SciTEUser.rar
    1.4 КБ · Просмотры: 9

AZJIO

Меценат
Меценат
Сообщения
2,903
Репутация
1,200
dr.room
Notepad++ моя сборка, с плагами и скриптами (правда скрипты для старой версии AutoIt)
 
A

Alofa

Гость
dr.room сказал(а):
... Правильно ли будет просто дописать в нём строку, где нибудь: code.page=65001
Безусловно. В "SciTEUser.properties" хранятся только изменения внесенные пользователем, кроме того этот файл всегда имеет больший приоритет перед "SciTEGlobal.properties" - так сделано намеренно и это правильно.

dr.room сказал(а):
... вы предлагаете применить кодировку SciTE UTF-8
а для Notepad++: UTF-8 без бом
Я ничего не предлагаю. Я вам просто показал где и что можно настроить. У меня стандартный Notepad++ и даже при таких настройках, он у меня отображает все коррекно.
 
Автор
D

dr.room

Новичок
Сообщения
283
Репутация
0
@AZJIO
Спасибо, попробую при случае
@Alofa
Строчку добавил - и SciTE начал всё открывать в UTF-8, крякозяблики пропали....
Но - теперь выскочила вторая проблема :stars:
Помимо прочего, я менял справку на расширенную. И теперь. примеры из неё - открываются с крякозябликами. Это - для меня критично. Пришлось откатить. Эх - жалко..Видимо - всё из-за Notepad++. Возможно в нём сразу нужно поменять кодировку на UTF-8 без бом. А то будучи в ANSI по умолчанию, он корёжит документ. Попробую, спасибо.

@inververs
Люблю экспериментировать, при случае попробую - спасибо
 

Вложения

  • пример из справки.png
    пример из справки.png
    38.1 КБ · Просмотры: 21

AZJIO

Меценат
Меценат
Сообщения
2,903
Репутация
1,200
dr.room
Можно конвертнуть файлы-примеры русской справки в UTF-8...
примерно так
Код:
Local $LngDn, $LngMB1, $LngWrn
Local $hFile, $sFileList, $sText
$LngWrn = 'Предупреждение'
$LngMB1 = 'Вы действительно хотите конвертировать файлы в UTF-8 без BOM?'
$LngDn = 'Готово!'

If MsgBox(4 + 48, $LngWrn, $LngMB1) = 7 Then Exit

#include <FileOperations.au3>
$sFileList = _FO_FileSearch(@ScriptDir & '\папка', '*.au3*')

For $i = 1 To $sFileList[0]
	$sText = FileRead($sFileList[$i])
	; $sText = StringReplace($sText, 'charset=windows-1251"', 'charset=UTF-8"')
	$hFile = FileOpen($sFileList[$i], 2 + 256)
	FileWrite($hFile, $sText)
	FileClose($hFile)
Next
MsgBox(0, '', $LngDn)
Это для версии 3.3.8.1, а тебе только указать ключи функции FileOpen, из какого в какой. И FO_FileSearch заменить на _FileListToArrayRec

dr.room [?]
Видимо - всё из-за Notepad++
Да нет, там файлы ANSI, Notepad++ просто их открывает понимая, что ANSI

Возможно в нём сразу нужно поменять кодировку на UTF-8 без бом
Если менять файлы справки, то 2000 файлов менять с помощью Notepad++ не айс. В нём есть опция создавать новый документ как UTF-8, просто включи. И никто ничего не корёжит, просто открывает в том формате в котором документ создан, автоматически определяя его кодировку, в отличии от других.
 
Верх