Friday 15 February 2013

php - json encode - special characters -



php - json encode - special characters -

i using json_encode function in simple quote scheme have:

<script type='text/javascript'> postquote[<?php echo json_encode($post['post_id']); ?>] = <?php echo json_encode($post['post_text']); ?> </script>

which outputs this:

postquote["11241"] = "&amp;kappa;&amp;alpha;&amp;lambda;&amp;eta;&amp;sigma;&amp;pi;\u03ad&amp;rho;&amp;alpha; &amp;alpha;&amp;lambda;\u03ac&amp;nu;&amp;iota;&amp;alpha; &amp;mu;&amp;omicron;&amp;upsilon;. \u0388&amp;chi;&amp;omega; &amp;kappa;\u03ac&amp;pi;&amp;omicron;&amp;iota;&amp;epsilon;&amp;sigmaf; &amp;alpha;&amp;pi;&amp;omicron;&amp;rho;\u03af&amp;epsilon;&amp;sigmaf;. \r\n1&amp;omicron;&amp;nu;: &amp;eta; &amp;pi;&amp;rho;\u03ac&amp;sigma;&amp;iota;&amp;nu;&amp;epsilon;&amp;sigmaf; &amp;delta;&amp;iota;&amp;alpha;&amp;phi;&amp;eta;&amp;mu;\u03af&amp;sigma;&amp;epsilon;&amp;iota;&amp;sigmaf; &amp;mu;&amp;omicron;&amp;upsilon; &amp;delta;\u03af&amp;nu;&amp;omicron;&amp;upsilon;&amp;nu; $0.01; &amp;alpha;&amp;nu; &amp;nu;&amp;alpha;&amp;iota; &amp;tau;\u03cc&amp;tau;&amp;epsilon; &amp;mu;\u03ac&amp;lambda;&amp;lambda;&amp;omicron;&amp;nu; \u03ad&amp;chi;&amp;omega; &amp;pi;&amp;rho;\u03cc&amp;beta;&amp;lambda;&amp;eta;&amp;mu;&amp;alpha; &amp;gamma;&amp;iota;&amp;alpha;&amp;tau;\u03af &amp;epsilon;\u03af&amp;chi;&amp;alpha; $0.60 &amp;pi;\u03ac&amp;tau;&amp;eta;&amp;sigma;&amp;alpha; &amp;kappa;&amp;alpha;&amp;iota; &amp;tau;&amp;eta;&amp;sigmaf; 4 &amp;pi;&amp;rho;\u03ac&amp;sigma;&amp;iota;&amp;nu;&amp;epsilon;&amp;sigmaf; &amp;kappa;&amp;alpha;&amp;iota; &amp;pi;\u03ae&amp;gamma;&amp;alpha; &amp;mu;\u03cc&amp;nu;&amp;omicron; $0.062.\r\n2&amp;omicron;&amp;nu;: \u03ad&amp;chi;&amp;omega; 5 rented ref. &amp;tau;\u03ce&amp;rho;&amp;alpha; &amp;mu;&amp;pi;&amp;omicron;&amp;rho;\u03ce &amp;nu;&amp;alpha; &amp;alpha;&amp;gamma;&amp;omicron;&amp;rho;\u03ac&amp;sigma;&amp;omega; \u03ac&amp;lambda;&amp;lambda;&amp;omicron;&amp;upsilon;&amp;sigmaf; 3 &amp;mu;&amp;epsilon; $0.6 &amp;lambda;\u03ad&amp;tau;&amp;epsilon; &amp;nu;&amp;alpha; &amp;tau;&amp;omicron;&amp;upsilon;&amp;sigmaf; &amp;alpha;&amp;gamma;&amp;omicron;&amp;rho;\u03ac&amp;sigma;&amp;omega; &amp;eta; &amp;nu;&amp;alpha; &amp;pi;\u03ac&amp;omega; $1 &amp;kappa;&amp;alpha;&amp;iota; &amp;nu;&amp;alpha; &amp;pi;\u03ac&amp;rho;&amp;omega; \u03ac&amp;lambda;&amp;lambda;&amp;omicron;&amp;upsilon;&amp;sigmaf; 5;\r\n\r\n&amp;alpha;&amp;upsilon;&amp;tau;\u03ac &amp;pi;&amp;rho;&amp;omicron;&amp;sigmaf; &amp;tau;&amp;omicron; &amp;pi;&amp;alpha;&amp;rho;\u03cc&amp;nu;."

the above text (greek):

Καλησπέρα αλάνια μου. Έχω κάποιες απορίες. 1ον: Η πράσινες διαφημίσεις μου δίνουν $0.01; Αν ναι τότε μάλλον έχω πρόβλημα γιατί είχα $0.60 πάτησα και της 4 πράσινες και πήγα μόνο $0.062. 2ον: έχω 5 rented ref. Τώρα μπορώ να αγοράσω άλλους 3 με $0.6 λέτε να τους αγοράσω η να πάω $1 και να πάρω άλλους 5; Αυτά προς το παρόν.

now, understanding encodes string html characters, hence before output it, do:

$(".quote").click(function() { $("#text").val($("<div>").html("[quote]" + postquote[$(this).attr('name')] + "[/quote]").text()); });

which doesn't help. output still same above.

what doing wrong?

edit:

$s = $dbh->prepare(" select t.*, c.forum_name, (select count(*) forum_posts topic_id=t.topic_id , post_deleted=0) posts forum_topics t bring together forum_cats c on c.forum_id = t.forum_id t.topic_id=:id "); $s->bindparam(':id', $id); $s->execute(); $q = $s->fetch(pdo::fetch_assoc); while ($post = $p->fetch(pdo::fetch_assoc)) { //postquote within here. }

my table forum_posts utf8_general_ci

2nd edit:

it seems problem greek letters? suggestions?

you should utilize htmlspecialchars(). proper options create string valid html. json_encode json string php value. using strings, in fact not want have json. particularly don't see why utilize post_id.

php html json encoding special-characters

No comments:

Post a Comment