Это известная ситуация, отвечу на все вопросы.
1) Легко протестировать нерусские символы - в Windows (любой) есть утилита Charmap -
Start/Run - впечатать Charmap
или Start/Programs/Accessories - там Charmap
В появившемся окошке выбрать, например, немецкую букву a-умляут - 'a' с двумя точками наверху (как у русской 'ё') и нажать "Copy".
Потом можно в любое место скопировать.
2) Начиная с Windows 2000 (в NT он ещё обычным был) редактор Notepad - 100% юникодовая программа, со всеми вытекающими из этого последствиями:
а) может работать только со следующими 2-мя типами .ТХТ файлов, что видно в его меню File/SaveAs (опция "Кодировка"
:
* *- Unicode файлы (стандартный или UTF-8)
* * - не-Unicode, "ANSI" файлы
где "ANSI" - это системная кодировка -
системная кодовая страница (system code page), то есть, если таковой является "Western, 1252", то Notepad может работать с не-Unicode файлами ТОЛЬКО если они в кодировке 1252 - немецкие, французские, ....
И наоборот - если системная кодировка - "Кириллица, 1251", то с западно-европейскими он НЕ сможет работать...
.
Если, при западно-европейской системной кодировке 1252, *ввести на экране и русские и немецкие буквы, то единственный путь сохранить текст нормально это сохранить его как Unicode-файл.
Иначе, при попытке сохранить как "ANSI", он попытается проделать конверсию
"Unicode ---> системная кодировка Western-1252"
и естественно, все русские буквы заменятся на 'вопросики' -
'?' означает (это и в Help описано)
"Символ не найден в заданной кодировке" - верно, в 1252 русских букв нет.
.
Системная кодировка выбирается под XP в пункте региональных настроек
"язык для НЕюникодовых программ",
а в 2000
то же самое - кнопкой "Set Dеfault".
Подробно описано в разделе
"Системная русификация: русские программы и имена файлов" вот тут:
http://RusWin.net
(то же самое верно и для немецкого)
б) Это и при загрузке файлов - там вообще нет меню выбора Кодировки, то есть либо Notepad определят, что это юникодовоый файл (это легко) либо, если не юникодовый, то
подразумеает, что текст в файле - системной кодировки. То есть, если дать русский файл - попортится.
===================
То же самое будет с НЕрусскими текстами в системе, где "Кириллица, 1251" является системной кодовой страницей.
===================
Так что ответ на
> Во-первых Notepad должен уметь читать все кодировки, которые
> можно выбрать в меню шрифт, или?
отрицательный - он вообще никогда
кодировок не знал
(прост слишком - просто пока неюникодовым был, НЕ трогал текст, сохранял как есть, то есть, сохранял байт со значением E4, ему не важно было, что это - русская 'д' из 1251 или а-умляут из 1252. Какой шрифт выберешь, то и покажет),
а под Windows 2000/XP умеет работать только с
двумя кодировками - Unicode и системная (system code page).
.
Подробнее на тему
.TXT и юникодовых программ можно почитать в *разделе про .TXT -
см. Главу
2 раздела
"Кириллица и Unicode" на моём сайте
Инструкции: русский под Windows и в Интернете
.
Выход? Очень простой -
не использовать Notepad!
Многие (и я) его и раньше, под Windows 95/98/NT не использовали - уж очень примитивен, прост.
На shareware.com, tucows.com, freeware.ru ПОЛНЫМ-ПОЛНО "заменителей Блокнота", выбирай на любой вкус.
Я, например, использую не-юникодовый UltraEdit - хочешь, немецкий текст вводи (выбрав рабочий шрифт кодировки "Western"
, а для другого файла - русский, выбрав "Courier New", SCript=Cyrillic.
Если же надо в одном файле и русские и немецкие буквы иметь, то файл ДОЛЖЕН быть в кодировке Unicode, другого варианта нет.
Подробнее на эту тему - немецкий и русский в одном
простом текстовом файле (.TXT, .HTML, .XML, .JSP - все они простые текстовые) - в разделе
"Для разработчиков: многоязычный HTML" моего сайта.
.
--
Павел
Русская Виртуальная Клавиатура:
http://Klava.RusWin.net
.
[s]Исправлено:
paulgor, 0:56 18-09-2004[/s]