A community in which webmasters can ask for help with topics such as PHP coding , MySQL , IT jobs, web design, IT security.
Current location:homephp forumphp talk in 2008 yearjson_encode and mysql unicode problem - page 1
User InfoPosts
json_encode and mysql unicode problem#1
i have the following javascript code:


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:


it says utf-8 in the source. the actual page code generated from echoing out article_desc is here:


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');

posted date: 2008-12-08 05:54:00

Re: json_encode and mysql unicode problem#2
I had made out the solution of this problem. click to view my topic...

hope that hepls.

posted date: 2008-12-08 05:54:01

Re: json_encode and mysql unicode problem#3
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

posted date: 2008-12-08 05:59:00

Re: json_encode and mysql unicode problem#4
json_encode will also handle stuff like escaping quotes for you

posted date: 2008-12-08 06:04:00

Re: json_encode and mysql unicode problem#5
my bad you right :)

posted date: 2008-12-08 06:09:00

Re: json_encode and mysql unicode problem#6
can you see if the unicode is correct in the database? i.e. are the question marks there or not?

posted date: 2008-12-08 06:16:00

Re: json_encode and mysql unicode problem#7
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.

posted date: 2008-12-08 12:37:00

Re: json_encode and mysql unicode problem#8
From what I can tell there are no question marks in the database, but perhaps not correct unicode either.

posted date: 2008-12-09 13:01:00

Re: json_encode and mysql unicode problem#9
json_encode( utf8_encode( $Content ) );This will solve your issue.

posted date: 2009-01-19 12:51:00

Re: json_encode and mysql unicode problem#10
Not if you want to encode an array

posted date: 2009-10-12 10:50:00

Re: json_encode and mysql unicode problem#11
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

posted date: 2011-02-02 02:51:00

select page: « 1 »
Copyright ©2008-2017 www.momige.com, all rights reserved.