2010-05-19 16 views
1

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

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

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

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

Я попробовал это (набор символов в элементе сценария) тоже:

<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)

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

+0

Вы используете какой-либо фильтр, который обрабатывает html? что произойдет, если вы используете тег скрипта для импорта js-файла вместо c: import? – marcosbeirigo

ответ

1

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

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

(при необходимости снимите ведущий слэш, если вы работаете на фиксированной связи, а не на корне домена)

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

+0

Да, ты прав! Большое спасибо! – Bardock

+0

Добро пожаловать. Старайтесь не перегружать вещи;) – BalusC

Смежные вопросы