问题
I would like to print a status message to my German users, which contains umlauts (ä/ü/ö). I also would like them be in the source file rather than having to download and parse some extra file just for the messages.
However, I can't seem to find a way to define the encoding of a JS source file. Is there something like HTML's http-equiv
? Or should I define the encoding in the HTTP header?
When I simply encode the file in UTF-8 an serve it, IE displays garbage.
回答1:
Sending the encoding in the headers is always a good idea.
If that's not possible, the <script>
tag has the charset
property. W3C Reference
<script src="translations.js" type="text/javascript" charset="utf-8"/>
回答2:
It seems that the charset attribute for the script tag is not deprecated in HTML5 (it is deprecated only for a and link tags).
回答3:
This might sound a bit dumb, but make sure you save your javascript file with the correct encoding in the editor you are using. I had a problem with the encoding of my javascript file, and the solution was as simple as this!
回答4:
While the charset parameter would seem helpful, it's important to note that it's actually deprecated in HTML5.
http://www.w3.org/International/questions/qa-html-encoding-declarations#charset
回答5:
For french javascript js, we've used another charset :
<script src="./js/MyScript.js" type="text/javascript" charset="iso-8859-1"></script>
回答6:
The simplest solution to your problem would be to use unicode escape for special character in strings. This way, your code is not affected by the page that's hosting it.
A tool that might help you: http://www.webstein.net/tools/javascript-unicode
来源:https://stackoverflow.com/questions/2325079/defining-the-character-encoding-of-a-javascript-source-file