I'm trying to display Japanese characters on a PHP page. No loading from the database, just stored in a language file and echo'ed out.
I'm running into a weird scenario. I have the page properly setup with UTF-8 and I test a sample page on my local WAMP server and it works.
The moment I tested it out our development and production servers the characters don't display properly.
This leads me to believe then that it's a setting in php.ini. But I haven't found much information about this so I'm not really sure if this is the issue.
Is there something fundamental I'm missing?
Thanks
Since you've stated that it is working in your development environment and not in your live, you might want to check Apache's AddDefaultCharset and set this to UTF-8, if it's not already.
I tend to make sure the following steps are checked
That seems to work for me. Hope this helps.
You have to deliver the documents with the proper encoding declaration in the HTTP header field
Content-Type
.In PHP you do this via the
header
function before the first data has been send to the client, so preferably as one of the first statements:Try following (worked for me, CentOS 6.8, PHP 5.6)
#1
Apache Config
#2
PHP Config
Note : set error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
#3
html head meta
Firstly, I'll assume the same client machine is used for both tests.
So, use Firebug or your tool-of-choice to check the HTTP response headers on your local server, and compare them with the headers generated by the other servers. You will no doubt find a difference.
Typically your server should be including a header like this in the response:
If the headers on the two systems look pretty much the same, grab the body of both responses and load it up in a hex editor and look for encoding differences.