5

I have a web server with my ISP which replaces accented characters in URLs with their unicode values: for instance é (eacute) is translated to %e9 (dec 233).

For testing locally I use EasyPHP which translates those characters by their utf-8 equivalence: é is then replaced by the well known sequence %c3%a9 (é)...
Browsers served by EasyPHP don't decode unicode values but they do if running locally (utf-8 and non converted accent also)...

I have been unable to find where this behavior is configured in the server.

This is a problem as some urls are built by my application using the php rawurlencode() which seems to always encode with unicode values on both servers.
Any idea?

Su'
  • 19,332
  • 3
  • 41
  • 65
jjjm1937
  • 51
  • 1
  • 2

2 Answers2

2

There is multiple ways to set character encoding.

  1. php.ini - default_charset = "utf-8"
  2. php header - header('Content-Type:text/html; charset=UTF-8');
  3. html meta - <meta http-equiv="Content-type" value="text/html; charset=UTF-8" />
  4. .htaccess - AddCharset UTF-8 .html

For more on the subject check out UTF-8: The Secret of Character Encoding or PHP UTF-8 cheatsheet and mbstring runtime configuration

bobthyasian
  • 141
  • 3
1

To change the default character encoding, you need to edit your Apache configurations (httpd.conf):

AddDefaultCharset utf-8
Lèse majesté
  • 15,296
  • 38
  • 49