LINUX.ORG.RU
ФорумTalks

Специалистам по всем вопросам: Опера


0

0

Был у меня скрипт для грейсманки. Я его подсунул Опере. Она его нормально переварила. Но появилась одна проблема: в скрипте сравниваются з строковые значения с кириллическими символами. Так вот, когда латиница - всё ок, когда кириллица - сравнение даёт False всегда... В скрипте текст в UTF-8. Куда копать?

зы. Опера 9.23

★★

Ответ на: комментарий от boombick

Я сравниваю не урл, а контент страницы со значениями, которые заранее прописаны в скрипте. Так что немного не то. Но всё-равно спасибо.

troorl ★★
() автор топика

Попробуй воткнуть метку юникода в начало файла скрипта.

anonymfus ★★★★
()
Ответ на: комментарий от troorl

Дык понятно, что не урл...

Но можно сравниваемые значения энкодить перед сравнением. Латиница останется неизменной, а кириллица придет в форму, пригодную для сравнения :)

boombick ★★★★★
()

Чего только люди не делают, лишь бы не пользоваться нормальным браузером.

anonymous
()
Ответ на: комментарий от boombick

Это совсем какой-то каменный век. А telnet вещь универсальная. И тебе браузер, и тебе jabber-клиент.

stassats ★★★★
()

может это поможет?

String.localeCompare(string)

This IE specific method is supported by Firefox and Opera (support 
elsewhere may be spotty and Opera returns unusual, but usable, 
results). This method compares the string with the passed value. If 
the comparison string sorts lower than the original string then this 
method returns 1 (in opera test for any positive value). If the two 
strings are equal, this method returns 0, and if the comparison string
sorts higher than the original string then this method returns -1 
(Search for any negative value in Opera).

Firefox 2.0 supports this method, however it is not documented so it's
not possible to tell when support for this method began. The 
documentation indicates that this comparison works regardless of the 
language being used (Japanese for instance). Since this is not 
documented in Firefox, the localization support may be imperfect.


var str = 'Hello Dolly!';
var result = str.localeCompare('Hello Dolly!');
document.writeln(result+'<br>'); // Outputs: 0

var result = str.localeCompare('Hello Bolly!');
document.writeln(result+'<br>'); // Outputs: 1

var result = str.localeCompare('Hello Molly!');
document.writeln(result+'<br>'); // Outputs: -1

Supported Since IE 5.5, Netscape (unknown, only unofficial support)

sdio ★★★★★
()

Я в Opere 9.22 не смог добиться нормальной работы с русским текстом в JS. Думал - просто туплю (хотя, скорее всего, так оно и есть). Скачав 9.5 ("на попробовать" какую-то альфа) - с удивлением обнаружил, что все, связанное с русским заработало (кодировка - utf8).

kosandry
()
Ответ на: комментарий от sdio

Так и не смог добиться ничего...

troorl ★★
() автор топика
Ответ на: комментарий от troorl

>А насчёт метки - как её воткнуть? И куда? :)

Посмотри в редакторе, которым ты пользуешься, 16-иричное представление. Первые три байта должны быть 0xEFBBBF для UTF-8. Википеди вот сюда:

http://en.wikipedia.org/wiki/Byte_Order_Mark

anonymfus ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.