Perl. Output the correct header before any part of the actual page. After the last header, use a double linebreak, e.g.:
print "Content-Type: text/html; charset=utf-8\n\n";
Python. Use the same solution as for Perl (except that you don't need a semicolon at the end).
PHP. Use the header() function before generating any content, e.g.:
header('Content-type: text/html; charset=utf-8');
Java Servlets. Use the setContentType method on the ServletResponse before obtaining any object (Stream or Writer) used for output, e.g.:
If you use a Writer, the Servlet automatically takes care of the conversion from Java Strings to the encoding selected.
JSP. Use the
page directive e.g.:
<%@ page contentType="text/html; charset=UTF-8" %>
out.println() or the expression elements (
<%= object%>) is automatically converted to the encoding selected. Also, the page itself is interpreted as being in this encoding.
ASP and ASP.Net. ContentType and charset are set independently, and are methods on the response object. To set the charset, use e.g.:
In ASP.Net, setting Response.ContentEncoding will take care both of the charset parameter in the HTTP Content-Type as well as of the actual encoding of the document sent out (which of course have to be the same).
The default can be set in the
globalization element in
Machine.config, which is originally set to UTF-8).