caracteres internacionais em Javascript

votos
10

Eu estou trabalhando em uma aplicação web, onde eu transferir dados a partir do servidor para o navegador em XML.

Desde que eu sou dinamarquês, eu rapidamente tiver problemas com os personagens æøå.

Eu sei que em html, eu uso o æøåpara æøå.

No entanto, assim como os caracteres passam por JavaScript, recebo caixas pretas com ?nelas ao usar æøå, e æøåé impresso como é.

Tenho a certeza de configurá-lo para utf-8, mas isso não está ajudando muito.

Idealmente, eu quero que ele funcione com quaisquer caracteres especiais (naturalmente).

O exemplo que não está funcionando é incluída abaixo:

<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01//EN http://www.w3.org/TR/html4/strict.dtd>
<html>
  <head>
    <meta http-equiv=Content-Type content=text/html; charset=utf-8 />
    <title>Untitled Document</title>
        <script type=text/javascript charset=utf-8>
            alert(&aelig;&oslash;&aring;);
            alert(æøå);

        </script>
    </head>
    <body>
    </body>
</html>

O que estou fazendo de errado?


Ok, graças à resposta Grapefrukts, eu tenho que trabalhar.

Na verdade, eu precisava disso para dados provenientes de um servidor MySQL. Desde o salvamento dos arquivos em codificação UTF-8 só resolve o problema para conteúdo estático, eu acho que eu iria incluir a solução para cordas de um servidor MySQL, tirou usando PHP:

utf8_encode($MyStringHere)

Publicado 13/09/2008 em 21:19
fonte usuário
Em outras línguas...                            


6 respostas

votos
20

Se você já não pode definir a codificação de resposta, você pode usar \useqüência de escape na string JavaScript literal para exibir esses caracteres.

alert("\u00e6\u00f8\u00e5")
Respondeu 28/09/2008 em 01:38
fonte usuário

votos
10

Apenas especificando UTF-8 no cabeçalho não é suficiente. Eu aposto que você não salvou seu arquivo como UTF-8. Qualquer editor de texto razoavelmente avançado terá essa opção. Tente isso e tenho certeza que ele vai trabalhar!

Respondeu 13/09/2008 em 21:39
fonte usuário

votos
7

Você também pode usar String.fromCharCode()a saída de um personagem de uma entidade numérica.

por exemplo, String.fromCharCode( 8226 )vai criar um personagem bala.

Respondeu 15/09/2008 em 22:43
fonte usuário

votos
1

Eu uso o código como este com idioma tailandês. Está bem.

$message é minha variável PHP.

echo("<html><head><meta charset='utf-8'></head><body><script type='text/javascript'>alert('" . $message . "');</script></body></html>");

Espero que isso possa ajudar. Obrigado.

(Eu não posso postar imagem do que eu fiz como o sistema disse: "Eu não tenho reputação suficiente", por isso deixo a imagem, aqui. Http://goo.gl/9P3DtI Desculpe pela inconveniência.)

Desculpem a minha fraca Inglês.

Respondeu 26/07/2013 em 00:31
fonte usuário

votos
1

Eu recebo "& aelig; & Ø; & aring;" para o primeiro e alguns caracteres de lixo para a próxima. Poderia ser que o javascript não está mutilando (ou mojibake ) suas cartas, mas o diálogo de alerta usa a fonte padrão do sistema, ea fonte é incapaz de exibir as letras?

Respondeu 13/09/2008 em 21:35
fonte usuário

votos
0

Isso funciona como esperado para mim:

alert("&aelig;&oslash;&aring;");

... cria um alerta que contém a string "& aelig; & Ø; & aring;" enquanto que

alert("æøå");

... cria um alerta com os caracteres não-ascii.

Javascript é bastante utf-8 limpa e não tendem a colocar obstáculos em seu caminho.

Talvez você está colocando isso em um servidor web que serve como ISO-8859-1? Se você usar Apache, em seu arquivo de configuração do Apache (ou em .httaccess, se você pode substituir), você deve ter uma linha

AddCharset utf-8 .js

(Nota: editado para escapar das ampersands ... caso contrário não faz sentido.)

Respondeu 13/09/2008 em 21:25
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more