Использование русских имён файлов в сгенерированном HTML

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Решил немного прилизать (от делать нечего).

Код: Выделить всё

'================================================================
' Создание html-файла с гиперссылками на выделенные файлы
' Параметры: %WL "<путь назначения>" "<текст до>" "<текст после>"
' Пример:    %WL "%T"
'================================================================
With WScript.Arguments
  If .Count = 0 Then WScript.Quit
  List  = .Item(0)
  TDir  = .Item(1)
  If .Count > 2 Then Bef = .Item(2)
  If .Count = 4 Then Aft = .Item(3)
End With
L = vbNewLine
With CreateObject("Scripting.FileSystemObject")
  For Each F in Split(.OpenTextFile(List,,,-1).ReadAll, L)
    If F > vbNullString Then
      If .FileExists(F) Then Text = Text & L & "   <li><a href=""" &_
      F & """ div class='l'>" & vbTab & Bef & .GetFileName(F) & Aft & "</a><br></li>"
    End If
  Next
  .OpenTextFile(TDir & "Список_файлов.html", 2, True, -1).Write "<head>" &_
  L & "<title>Cсылки на файлы</title>" & L & "<style type='text/css'>" & L &_
  "body {background-color:#5D7CBA;font-family:Vendana; font-size:16px;}" &_
  L & "h1 {color: #FFD900;font-size:16px;}" & L & "hr {color:#FFE3BF;}" & L &_
  "ol {color: #FFD900;}" & L & "a.l {color:#F8FAD8; text-decoration: none}" & L &_
  "a:hover.l {text-decoration: underline; color:#FFD900}" & "</style>" & L &"</head>" &_
  L & "<body>" & L & "<h1 style='text-align: center;'>Ссылки на файлы</h1>" &_
  L & "<hr />" & L & "<ol>" & Text & L &"</ol>" & L & "</body>" & L & "</html>"
End With
JKT
Сообщения: 116
Зарегистрирован: Вт сен 22, 2009 23:01
Откуда: Харьков

Сообщение JKT »

Flasher
Спасибо уважаемый!
Но проблемка такая. При создании списка файлов по вашему скрипту создается html файл с неприятным именем РЎРїРёСЃРѕРє_файлов.html. А так при запуске этого файла все нормально имена отражаются, только заголовок из этой абракадабры. Может у меня что-то в системе нетак с кодировками? Как победить сие? (пользую Гугл Хром)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Хм. Странно. Я вроде как с проблемами кодировки разобрался. Проверял на разных браузерах, в т.ч. на SRWare Iron (хромовский движок).
1. Код сейчас был сохранён или в день выкладки?
2. Параметр %WL?
3. Заголовок на странице или в строке заголовка окна?
JKT
Сообщения: 116
Зарегистрирован: Вт сен 22, 2009 23:01
Откуда: Харьков

Сообщение JKT »

1. только, что скопировал код
2 параметры %WL "%T"
3 в строке адреса браузера file:///F:/111111/РЎРїРёСЃРѕРє_файлов.html
на самой странице РЎРїРёСЃРѕРє_файлов (потом линия и все файлы. Пробовал брать файлы и только на латинице и вперемешку) внутри страницы имена файлов, хоть на латинице хоть на могучем все нормально отображаются.
Аватара пользователя
Andrey_A
Сообщения: 394
Зарегистрирован: Пт апр 10, 2009 06:28
Откуда: Сочи
Контактная информация:

Сообщение Andrey_A »

JKT у меня скрипт Flasher работает нормально, без крокозябр
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

JKT
1. Win XP/7? SPx - ?
2. Локаль в Юникод не переведена?
JKT
Сообщения: 116
Зарегистрирован: Вт сен 22, 2009 23:01
Откуда: Харьков

Сообщение JKT »

1. ХР SP3
2. А я незнаю. Пока никаких траблов и нигде не замечал. А где можно и как глянуть юникодная или нет?
Погодьте. А в каком коде надо сохранять в текстовом редакторе? може там че напутал? Я просто копирнул текст скрипта и в блокноте сохранил под vbs (раньше проблем небыло)

Добавлено спустя 12 минут:

Andrey_A
У тебя в скрипте имя html как SPISOK, а тут видно на кирилице
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

JKT писал(а):А где можно и как глянуть юникодная или нет?
В XP это тут делается, насколько я помню: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,3
Если такой скрипт выполнить:

Код: Выделить всё

MsgBox GetLocale & vbNewLine & ScriptEngineMajorVersion &_
"." & ScriptEngineMinorVersion & "." & ScriptEngineBuildVersion
что покажет?
JKT писал(а):А в каком коде надо сохранять в текстовом редакторе? може там че напутал? Я просто копирнул текст скрипта и в блокноте сохранил под vbs
Да в общем-то, не принципиально. Я бы указал на это. Но попробывать сохранить в Юникод (если из обычного блокнота) можно.
JKT писал(а):а тут видно на кирилице
Для русских юзеров, т.с.
Последний раз редактировалось Flasher Пн окт 24, 2011 23:14, всего редактировалось 1 раз.
JKT
Сообщения: 116
Зарегистрирован: Вт сен 22, 2009 23:01
Откуда: Харьков

Сообщение JKT »

выполнил
пишет:

1049
5.8.23000
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Вроде всё ок. И я там дописал выше.
1. Какой заголовок показывают другие браузеры?
2. Версия Хрома какая?
3. Имя файла и в ТС с кракозябрами?
JKT
Сообщения: 116
Зарегистрирован: Вт сен 22, 2009 23:01
Откуда: Харьков

Сообщение JKT »

Flasher

1. ФаерФокс : Строка адреса ; file:///F:/111111/РЎРїРёСЃРѕРє_файлов.html Заголовок самой страницы те-же кракозяблы РЎРїРёСЃРѕРє_файлов
ОПЕРА: Сттрока адреса: file://localhost/F:/111111/РЎРїРёСЃРѕРє_файлов.html ЗАГОЛОВОК самой страницы ЭТО-же самая абракадабра. Имена файлов на самой странице шо в кирилице, шо на латинице - ВСЕ ОК

2. Хром версия 14.0.835.163
3. Имя в ТС на панеле РЎРїРёСЃРѕРє_файлов.html

Добавлено спустя 11 минут:

Незаметил. щас попробую в юникод сохранить

Добавлено спустя 7 минут:

сохранил в UTF-8
после применения с темеже "параметрами скрипта" выдало:
---------------------------
Windows Script Host
---------------------------
Сценарий: D:\Portable Soft\TCPU\scripts\1111111111111111111111111111111111111.vbs
Строка: 1
Символ: 1
Ошибка: Недопустимый знак
Код: 800A0408
Источник: Ошибка компиляции Microsoft VBScript

---------------------------
ОК
---------------------------

клавиша запала, насчет имени 1111......
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Странное дельце.
1. Версия TC?
2. В скрипте массово заменить (Ctrl+H в блокноте) -1 на -2, сохранить. После выполнения квадраты покажет?
JKT писал(а):сохранил в UTF-8
Я разве про UTF-8 что-то писал?
JKT
Сообщения: 116
Зарегистрирован: Вт сен 22, 2009 23:01
Откуда: Харьков

Сообщение JKT »

1. ТС 7.56a
2. нет. Заменил -1 на -2 никаких квадратов
мне чето кажется, что хром как-то копирует текст нетак. Сейчас зайду на эту страницу и скопирую текст скрипта из фаерфокса.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

JKT
Тогда это проблема буфера, и в тексте скрипта эти кракозябры уже должны быть.
JKT писал(а):никаких квадратов
Забыл уточнить - в заголовке.
JKT
Сообщения: 116
Зарегистрирован: Вт сен 22, 2009 23:01
Откуда: Харьков

Сообщение JKT »

Flasher
неа. Зашел с фаера, копирнул. Сделал по новому. Тажесамая трабла. так-что брауз тут непричем. Попробуй методом тыка в скрипте заменить название, оно одинаковое на латынь, може поможет определить проблему. Чесс слово, для моих надобностей, я-бы и в текстовике просто поправил-бы результат, но ведь мы так и не выяснили ПОЧЕМУ это происходит, а сие думаю некоторым пригодится, если мы решим сию траблу
Ответить