31

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.

3

6 Answers 6

44

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"/>
Sign up to request clarification or add additional context in comments.

Comments

10

It seems that the charset attribute for the script tag is not deprecated in HTML5 (it is deprecated only for a and link tags).

Comments

4

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!

Comments

3

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

7 Comments

So what's the alternative then?
@MicahHenning And what if you can't define it in the HTTP headers?
Or what if you aren't using a web server and running HTML files locally?
HTML5 does not deprecated the property charset on a script tag. The link above only deals with links and not script. w3.org/TR/html5/scripting-1.html#attr-script-charset
@VernBurton Yes, you are correct. Perhaps in June of 2012 when I made this post my understanding was that the charset parameter was deprecated, but then it was later re-added. After all, HTML 5 wasn't finalized until late 2014.
2

For french javascript js, we've used another charset :

<script src="./js/MyScript.js" type="text/javascript" charset="iso-8859-1"></script>

2 Comments

you should use utf-8, this charset will allow iso-8859-1 characters and more.
unless of course you explicitly desire to support no more than good ole French ;)
-1

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

1 Comment

Link is unfortunately dead.

Your Answer

Draft saved
Draft discarded

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.