Reputation: 4193
i have the following javascript code:
http://www.nomorepasting.com/getpaste.php?pasteid=22561
Which works fine(the makewindows function has been changed to show it is a php variable), however the html contains unicode characters, and will only be assigned characters leading up to the first unicode character. If I make a small test file and echo out article_desc directly, all the html is output, although quetsions marks are displayed instead of the correct symbols. However json_encode seems to cut short the html, resulting in errors.
edit: here is a dump straight from the mysql database of the html I am trying to display:
http://www.yousendit.com/download/TTZueEVYQzMrV3hMWEE9PQ
it says utf-8 in the source. the actual page code generated from echoing out article_desc is here:
http://www.nomorepasting.com/getpaste.php?pasteid=22566
it is definitely the same record, so I am unsure why it seems to very different.
edit: this was fixed by calling: mysql_query('SET NAMES utf8');
Upvotes: 2
Views: 6876
Reputation: 5563
I had the same issue. I am using Zend_Db/mysqli and my database content is actually UTF8.
I solved the problem by asking my database adapter to use UTF8:
$conf->db->params['charset'] = 'UTF8';
If you use PDO instead of mysqli, you can do it this way:
$pdoParams = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8;');
$conf->db->params['driver_options'] = $pdoParams;
If you don't use Zend_Db but use mysqli, you might want to look at http://php.net/manual/en/mysqli.set-charset.php.
Source: http://www.zfsnippets.com/snippets/view/id/13
Upvotes: 2
Reputation: 117447
json_encode
expects strings to be UTF-8 encoded byte streams. You'll have to either use utf-8 encoded strings internally (Which is the only current way to deal with unicode characters in PHP anyway), or use a different library for generating json.
Upvotes: 3
Reputation: 3321
i don't think you need json_encode. json_encode encodes PHP arrays and objects to readable JavaScript format. If you send plain text or html within ajax you don't need json_encode
Upvotes: -1