Shift JIS преобразует escape-символ JS в обратный слэш
В настоящее время я работаю над сайтом, который имеет две версии: один американский сайт, который служит utf-8, и один японский вариант, который служит Shift JIS. Сайт создан с использованием Perl.
Эта проблема:
Я подаю Javascript сродни следующему.
var text = "test \"quote\"";
Который на японском сайте возвращает ошибку "Uncaught SyntaxError: Неожиданный идентификатор". Это происходит потому, что обратный слеш преобразуется в удлиненный символ обратного слеша \, который не рассматривается как escape-символ и, таким образом, ломает черту.
Кажется, я не могу найти кого-то еще, кто сталкивается с этой проблемой, что вызывает у меня подозрение, что с нашим веб-сайтом нет ничего принципиально неправильного. Кто-нибудь сталкивался с подобной ситуацией и нашел решение?
Большое спасибо
1 ответ
Я нашел некоторую полезную информацию здесь:
Почему браузер показывает другую обратную косую черту для регулярного выражения проверки электронной почты. Как это предотвратить?
Что привело меня к этому огорчительному хаку:
var text = "test ¥"quote¥"";
Это работает отлично. Теперь, очевидно, это не способ сделать это, но он позволит другим разработчикам протестировать другие взаимодействия JS на сайте, в то время как я сконцентрируюсь на рефакторинге этого кода во что-то, что не зависит от экранирования символов. Я надеюсь, что эта информация поможет кому-то еще в какой-то момент!