This article was first written in July 2004 for the BeezNest technical
To enable all characters to be displayed correctly in an HTML page, even if you use different languages (english, japanese, russian, …), a good way is to encode everything in unicode, using the UTF-8 character set representation.
Server & client config
In Apache config file httpd.conf
, one of the following must be defined:
More info: Apache AddDefaultCharset directive
In your HTML page, define:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Working with unicode databases
To display the content of a unicode database, no need to decode the data.
For example in PHP, no need to use utf8_decode().
If you use forms to update a unicode database, there is no need to encode the POST data.
For example in PHP, no need to utf8_encode($_POST['var']).
Working with non-unicode databases
To display the content of a non-unicode database, you need to decode the data before displaying them.
For example in PHP, you must use utf8_decode().
If you use forms to update a non-unicode database, you need to encode the POST data prior to send them to the database.
For example in PHP, you must use utf8_encode($_POST['var']).
The best solution to not have to worry about encoding/decoding is to use the same character encoding on the client (HTML page) as on the server (database).
W3C: Q&A: Checking HTTP Headers