Что нового

Неисправляемые кракозябры в редакторе

havi2307

Новичок
Сообщения
7
Репутация
1
Скрипт писал на старом SciTE. Накатил новый(не помню какой был старый, вроде там было что-то вроде Lite, но такого в сети найти не могу). В коде вместо русских символов появилась вот такая кракозябра:
После File>Encoding>UTF-8 в редакторе появляется возможность писать русские символы и не видеть вопросительные знаки вместо них, но уже написанный код при этом:

В коде 2300 строк, нервы на пределе, хэлп :shok: :stars:
 

InnI

AutoIT Гуру
Сообщения
4 463
Репутация
1 209
Откройте в SciTE любой скрипт. В главном меню "Options" выберите пункт "Open Global Options File". В открывшемся файле найдите строку
Код:
code.page=65001
Замените 65001 на 0. Сохраните изменения, перезапустите SciTE.
 
Автор
H

havi2307

Новичок
Сообщения
7
Репутация
1
InnI сказал(а):
Откройте в SciTE любой скрипт. В главном меню "Options" выберите пункт "Open Global Options File". В открывшемся файле найдите строку
Код:
code.page=65001
Замените 65001 на 0. Сохраните изменения, перезапустите SciTE.
Сделал. Не помогло
 

InnI

AutoIT Гуру
Сообщения
4 463
Репутация
1 209
havi2307 [?]
Тогда попробуйте 1251 вместо нуля.
Также можете попробовать обнулить параметр utf8.auto.check.

После File>Encoding>UTF-8 в редакторе появляется возможность писать русские символы
После этой операции ваш файл сохранится в UTF-8 и, после установки code.page в ноль, вы получите уже другие кракозябры. Другими словами, кодировка скрипта должна совпадать с кодировкой SciTE.

что-то вроде Lite, но такого в сети найти не могу
Lite версия SciTE устанавливается вместе с AutoIt. Её не нужно искать в сети.
 

Hikari

Новичок
Сообщения
22
Репутация
0
Попробуйте открыть в Notepad++ у меня сначала тоже такая проблема была...
 
Сообщения
80
Репутация
-1
В общем эта версия редактора не понимает ansi в отличии от старой, но сам autoit работает только в ansi, но все скрипты понимают только utf все 3 сорта, а вот scite не понимает ничего кроме utf8.
Мораль: разрабы ничерта не понимают в кодировках вообще, у них есть латынь которая в любой кодировке одинаковая, зачем они вообще в это полезли непонятно.

Параметры code.page бесполезны полностью.
В них нужно указывать только utf8 16 32 64 128 512 4096, неужто их так много, чёт я их никогда не видел, может китайские какие.
Есть ещё более бесполезная секция
Код:
# Internationalisation
#NewFileEncoding=CodePage/UTF8BOM/UTF8/UTF16BE/UTF16LE         # Only available in SciTE4AutoIt3 version

#~ Enhance function of auto checking utf8: providing two methods
# detect utf8 and add BOM automatically   Credits to SciTE-RU
#utf8.auto.check=1
# detect utf8 and do not add BOM
#~ utf8.auto.check=2
# detect ascii high characters and if none found set default encoding to UTF8 and add BOM
#~ utf8.auto.check=3
# detect ascii high characters and if none found set default encoding to UTF8 and do not add BOM
utf8.auto.check=4
как можно понять тут можно только выбрать из какой utf8 перекодировать в utf8.
В случае 4 файл будет перекодирован, в случае
utf8.auto.check=1
просто испорчен.
scite можно только сказать в какой кодировке читать файл, и она автоматом сделает из него utf не важно нужен он вам или нет.

И весь прикол в том что сменить кодировку можно только при компиляции, что делает параметр utf8.auto.check вообще нигде не документировано.
Пожалуй стоит поискать консольный перекодировщик файлов чтоб командой подсовывать нужные в компилятор
 

autoall

Новичок
Сообщения
19
Репутация
0
У меня была подобная проблема буквально вчера. Решил следующим образом:
1) В Notepad++ перекодировал исходные файлы в UTF8
2) В SciTEUser.properties прописал следующее:
Код:
code.page=65001
LC_CTYPE=en_US.UTF-8
 

InnI

AutoIT Гуру
Сообщения
4 463
Репутация
1 209
Если в последней полной SciTE при установленном параметре code.page=0 перестаёт правильно отображаться и вводиться русская ANSI, попробуйте раскомментировать параметр character.set=204
 

Karlson

Новичок
Сообщения
2
Репутация
0
[Новая функция] Re: Неисправляемые кракозябры в редакторе

InnI сказал(а):
Если в последней полной SciTE при установленном параметре code.page=0 перестаёт правильно отображаться и вводиться русская ANSI, попробуйте раскомментировать параметр character.set=204
Единственное, что помогло.
Пару дополнений:
1. Речь тут идет о файле "SciTEGlobal.properties" Option -> Open Global Option file.
2. Строк в фале много. У меня это была 310 строка, (чтоб было проще искать)
2. Если autoit установлен в C:\Program Files (x86), то для изменения конфигурации требуется, чтоб редактор работал в режиме "Администратора"
---
 

SA

Новичок
Сообщения
2
Репутация
0
Проблему с вопросиками решил установкой Autoit не в Program Files (x86) а в папку Program Files.
Крокозябры в старых файлах легко решаются преобразованием из кирил. в 1251
Пример:
Код:
#Include <Encoding.au3>
$hOpen = FileOpenDialog("Открыть файл", @ScriptDir, "Все(*.*)", 3)
$aPath = StringSplit($hOpen, "\")
$sName = StringTrimRight($aPath[$aPath[0]], 4)
$hFile = FileOpen($sName & "(" & Random(0, 999, 1) & ")" & StringRight($hOpen, 4), 2)
$sCode = _Encoding_CyrillicTo1251(FileRead($hOpen))
FileWrite($hFile, $sCode)
FileClose($hFile)
Exit
 
Верх