Eclipse кодировка символов JavaScript - PullRequest
1 голос
/ 19 мая 2010

Я хотел бы отобразить некоторые специфичные для языка символы из JavaScript, но не могу.

Мое приложение - это веб-приложение на Java, а интерфейс - jQuery. Все символы, отправленные с сервера - в JSP или с AJAX - отображаются правильно. Когда я хочу отобразить некоторый текст, жестко запрограммированный в файл javascript, он не работает.

Я использую Eclipse. В заголовке JSP я использую:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

Я тоже пробовал это (кодировка в элементе script):

<script type="text/javascript" charset="utf-8"><c:import url="/JS/mainJS.js" /></script>

В моем Eclipse я установил код свойства / текстового файла проекта UTF-8 и проверил кодировку свойств / текстового файла ресурсов JS, которая также является UTF-8.

Но когда я попробую это:

$.test = function(){
    var s = "éééáááűűűű";
    alert(s);
}

Я получаю:

éééáááűűűű

Странно то, что: когда я пытаюсь в отдельном HTML-файле (в том же проекте), он работает:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
  <head>
    <title>Test</title>

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

    <style type="text/css">
        body {background: #c0c0c0;}
    </style>

    <script type="text/javascript">
        $(document).ready(function(){
            var s = "éááűűúúú";
            $("#console").text(s);
            alert(s);
        })
    </script>

  </head>

  <body>
        <div id="console"></div>
  </body>
</html>

Даже если я НЕ использую какой-либо тип содержимого и настройки кодировки страницы.

В чем проблема? Что мне делать? (Я использую Apache Tomcat, интегрированный в Eclipse)

Заранее спасибо!

1 Ответ

1 голос
/ 19 мая 2010

c:import использует кодировку платформы сервера по умолчанию, если кодировка отсутствует в заголовке ответа на запрос.Вместо этого просто используйте атрибут src.Веб-браузер в этом умнее.

<script type="text/javascript" src="/JS/mainJS.js"></script>

(при необходимости удалите косую черту, если вы работаете в фиксированном контексте, а не в корневом домене)

Если вам действительно нужноc:import для этого (для которого я, честно говоря, не вижу какого-либо преимущества в данной конкретной ситуации), тогда вам нужно написать Filter прослушивание /JS/*, которое устанавливает соответствующий Content-Typeзаголовок с правильной кодировкой в ​​ответе.Это, однако, не сработает, если это касается внешнего URL, тогда ответственность за это несет внешний сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...