Кодировка: русский текст
При использовании Google Closure Compiler, как впрочем и других аналогичных упаковщиков, основанных на Rhino, возникают некоторые проблемы с русским текстом.
Эта статья содержит рецепты, как их легко преодолеть.
Если вы попробуете сжать javascript, в котором присутствуют русские буквы в кодировке windows-1251, то на выходе вместо русского текста получите "кракозяблы". Это нормально.
Для того, чтобы произвести правильную обработку, необходимо для начала перевести файл в промежуточный ASCII-формат. Это умеет делать утилита native2ascii , которая распространяется вместе с JDK.
То есть, обычной JRE (Java Runtime Environment) не хватит, нужно поставить JDK, и там, в директории bin, будет лежать эта утилита.
На входе: file.js
function()
var a = "тест"
return a
}
Запускаем:
native2ascii -encoding windows-1251 file.js file.ascii.js
Получаем file.ascii.js
function func() {
a = "\u0442\u0435\u0441\u0442"
return a
}
Теперь полученный файл в формате ASCII можно смело передавать компилятору:
java -jar compiler.jar --js file.ascii.js --js_output_file file.ascii.compiled.js
На выходе: file.ascii.compiled.js
function func(){return a="\u0442\u0435\u0441\u0442"};
И теперь - возвращаем файл из промежуточного формата обратно, в родной windows-1251:
native2ascii -reverse -encoding windows-1251 file.ascii.compiled.js file.compiled.js
Получили результат - сжатый файл в кодировке windows-1251.
Вот небольшой пакетный файл под windows для сжатия. Предполагается, что путь к native2ascii (к директории bin в JDK) у вас в переменной PATH .
native2ascii -encoding windows-1251 "%1.js" "%1.tmp.js"
java -jar compiler.jar --js "%1.tmp.js" --js_output_file "%1.compiled.tmp.js" %2 %3 %4 %5 %6 %7
native2ascii -reverse -encoding windows-1251 "%1.compiled.tmp.js" "%1.compiled.js"
del /q "%1.tmp.js"
del /q "%1.compiled.tmp.js"
Использование для файла file.js :
c.bat file --compilation_level ADVANCED_OPTIMIZATIONS
Готовый файл будет file.compiled.js .
C кодировкой UTF-8 все немного проще. Мы можем скормить файл компилятору сразу же. Единственно, результат будет такой:
function func(){return a="\u0442\u0435\u0441\u0442"};
То есть, вместо UTF-символов мы имеем их запись в виде ASCII.
Для приведения такого файла к нормальному виду достаточно пропустить его через native2ascii без указания кодировки:
native2ascii -reverse <откомпилированный файл> <итоговый файл>
После этого полученный файл будет в кодировке UTF-8.
На этом проблемы с кодировкой должны быть исчерпаны.
|
native2ascii работает только в составе пакета или нет? Если нет? скиньте файл или ссылку на него на мыло, спасибо.
А где взять этот native2asci?
Перефразирую свой вопрос: есть ли аналоги native2ascii? Совершенно не хочется на сервере ставить JDK из-за этой приблуды...
Вот простенький заменитель native2ascii на javascript под Windows Script Host.
Запуск: cscript.exe native2ascii.js <откомпилированный файл> <итоговый файл>
Оказалось, что текст сохраняется в Windows-1251. Вот исправленный скрипт:
Я так понимаю, что можно еще конвертировать скрипты в UTF-8, обрабатывать упаковщиком и переконвертировать обратно в Win-1251?
Кстати, native2ascii входит в состав дефолтных команд Apache Ant. Так что если вы юзаете ант для сжатия js, это может выглядеть примерно так:
<jscomp compilationlevel="simple" debug="false" output="ascii/scripts.min.js">
<sources dir="/">
<file name="script1.js" />
<file name="script2.js" />
</sources>
</jscomp>
<native2ascii src="ascii" dest="/" reverse="true" />
<delete dir="ascii" />
Пример для скриптов в UTF-8.
Если JDK не установлен, на задании native2ascii билдер будет вылетать с ошибкой.
То есть нет никакого значка чтоб java-всемогущий понял следующий текст как записанный пользователем уже в unicode? без скармливания каким-то программам? грошёвый продукт, если так
Хм, у меня по-умолчанию при написании:
native2ascii -reverse <откомпилированный файл> <итоговый файл>
он кодируется в win-1251.
Чтобы в utf-8 получить, необходимо написать:
native2ascii -reverse -encoding utf-8 <откомпилированный файл> <итоговый файл>
для сжатия win-1251 достаточно указать ключ --charset WINDOWS-1251, а для UTF-8, соответственно --charset UTF-8 без всяких прыжков с переворотом.
Это действительно работает, неплохо бы автор исправил статью, чтобы не вводить новичков вроде меня в заблуждение %)
Roksa krosno odrzanskie
Roksa mostki
Ultraagnes roksa
Roksa w usa
Rollic Games' new action game for Android phones is called Blob Hero. The game plays similarly to Survivor Diary. If you're bored and don't have anything else to play, why not give this Blob Hero Mod APK game a try?
awesome post i love it keep posting more! Sheetrock Installation in fort worth texas
UpToMods.Com is the best place to find free MOD APK games and apps from reputable sources. We also provide promo codes for popular game every day so that your entertainment experience will be better than ever!
Indeed, I can't hide it when my ability is not enough to fully understand what you say. I really need more help from you, hope to hear from you soon, I promise to pay you in basketball stars.
Due to me knowledge, encoding standard is a numbering technique that allots a numerical value to each drift boss text character in a character set. Characters from the alphabet, numbers, and other 1001 tips symbols can all be found in a string.
Introducing the latest and greatest from the mobile gaming world: Dynamons World Mod APK! This awesome game immerses you in a vibrant virtual universe of creatures, levels, and strategic battles. With up-to-date graphics and a friendly user interface, this game has something for everyone.
What I read in this contexto post surprises me. The content is relevant to me, and it has a beautiful presentation and a simple io games layout.
viralslot
tiktok slot
slot depo shopepay
permata 55 login
mantul slot login
ajaib slot
maduslot
slothoki4d
elang 123 slot
dolarslot 508
djarum slot
bigslot88
asia gaming777
4dku slot
akun jp slot
arenabet168
akun slot hoki
slot server colombia
raja shio
raja judi 88
judi baccarat online
live score asianbookie bandar
togel master sydney
sabung ayam bangkok thailand
masterslot888
big win slot
slot server china
situs slot kamboja
slot china
bca slot
slot deposit sakuku
slot bank neo commerce deposit 5000
slot server filipina
situs slot luar negeri
slot server tokyo
slot vip online
slot server nuke gaming
raja slot77
88 baru in
slot server phnom penh
slot server myanmar
link slot gacor
bni slot
win88
gacor88 login
judi dragon tiger
remi online
idn poker99
slot server jakarta
raja slot
slot cuan
poker garuda
slot88 pulsa
slot alfa
megawin slot
slot semua bank
gaming888
bonanza888
slot anti boncos
habanero slot login
spaceman pragmatic
rtp zeus
demo slot zeus
link slot zeus gacor
slot168
dapetduit slot
slotterbaru
scatter game judi
akun demo sweet bonanza
judicuan
judi bola euro
slot500x
slot mania
bigslot
bandar 138 slot
slot anti nawala
rtp gacorx500
gacorx500.net
slot bocor
live22 login
login sbobet88 mobile
idn poker gaple
demo bonanza
judi dadu online
slot raja eropa
mahjong slot
ludo88
slot via linkaja
daftar slot aztec
playland 88 slot
slot depo dana
depotjudi
judi samgong
gacorx500
jokerwin123 dana
Slot Gopay Tanpa Potongan
slot online dana
ovo88 slot
depotjudi login
dana88 slot
situs slot gacor
slot via qris
gacorx500
slot server singapura
slot server gacor
slot dana
slot uang asli
sbobet mix parlay
situs judi sabung ayam online 24 jam
sbobet sport
ovodewa slot
888vipbet
qqslot777 login
togel kamboja
dadu koprok
winslot777 login
paiza99 slot
oyo99 slot
islot99 login
lagunabet
daftar win88
ratu casino88
link slot88
xlslot
bo slot gacor
hoki slot 4d
rajawin88
4d slot login
slot bank dana
fafa slot
slot88
slot deposit 50 bonus 50
slot internasional
boslot
slot 303
raja slot 44
slot server singapore
slot server taiwan
slot server thailand
slot thailand gacor
slot luar negri gacor
This engaging sports game centers around neighborhood competition. The main objective in backyard baseball is to create a team of local kids and compete in baseball matches. Success is achieved by scoring more runs than the opposing team through effective batting, pitching, and fielding.
Posso deixar meu texto mais bonito com fonte de letras?
Отправить комментарий
Приветствуются комментарии:Для остальных вопросов и обсуждений есть форум.