Shift JIS преобразует escape-символ JS в обратный слэш

В настоящее время я работаю над сайтом, который имеет две версии: один американский сайт, который служит utf-8, и один японский вариант, который служит Shift JIS. Сайт создан с использованием Perl.

Эта проблема:

Я подаю Javascript сродни следующему.

var text = "test \"quote\"";

Который на японском сайте возвращает ошибку "Uncaught SyntaxError: Неожиданный идентификатор". Это происходит потому, что обратный слеш преобразуется в удлиненный символ обратного слеша \, который не рассматривается как escape-символ и, таким образом, ломает черту.

Кажется, я не могу найти кого-то еще, кто сталкивается с этой проблемой, что вызывает у меня подозрение, что с нашим веб-сайтом нет ничего принципиально неправильного. Кто-нибудь сталкивался с подобной ситуацией и нашел решение?

Большое спасибо

1 ответ

Я нашел некоторую полезную информацию здесь:

Почему браузер показывает другую обратную косую черту для регулярного выражения проверки электронной почты. Как это предотвратить?

Что привело меня к этому огорчительному хаку:

var text = "test ¥"quote¥"";

Это работает отлично. Теперь, очевидно, это не способ сделать это, но он позволит другим разработчикам протестировать другие взаимодействия JS на сайте, в то время как я сконцентрируюсь на рефакторинге этого кода во что-то, что не зависит от экранирования символов. Я надеюсь, что эта информация поможет кому-то еще в какой-то момент!

Другие вопросы по тегам