0
我使用json_encode函數在一個相當簡單的報價系統,我有:JSON編碼 - 特殊字符
<script type='text/javascript'>
postQuote[<?php echo json_encode($post['post_id']); ?>] = <?php echo json_encode($post['post_text']); ?>
</script>
它輸出這樣的:
postQuote["11241"] = "&Kappa;&alpha;&lambda;&eta;&sigma;&pi;\u03ad&rho;&alpha; &alpha;&lambda;\u03ac&nu;&iota;&alpha; &mu;&omicron;&upsilon;. \u0388&chi;&omega; &kappa;\u03ac&pi;&omicron;&iota;&epsilon;&sigmaf; &alpha;&pi;&omicron;&rho;\u03af&epsilon;&sigmaf;. \r\n1&omicron;&nu;: &Eta; &pi;&rho;\u03ac&sigma;&iota;&nu;&epsilon;&sigmaf; &delta;&iota;&alpha;&phi;&eta;&mu;\u03af&sigma;&epsilon;&iota;&sigmaf; &mu;&omicron;&upsilon; &delta;\u03af&nu;&omicron;&upsilon;&nu; $0.01; &Alpha;&nu; &nu;&alpha;&iota; &tau;\u03cc&tau;&epsilon; &mu;\u03ac&lambda;&lambda;&omicron;&nu; \u03ad&chi;&omega; &pi;&rho;\u03cc&beta;&lambda;&eta;&mu;&alpha; &gamma;&iota;&alpha;&tau;\u03af &epsilon;\u03af&chi;&alpha; $0.60 &pi;\u03ac&tau;&eta;&sigma;&alpha; &kappa;&alpha;&iota; &tau;&eta;&sigmaf; 4 &pi;&rho;\u03ac&sigma;&iota;&nu;&epsilon;&sigmaf; &kappa;&alpha;&iota; &pi;\u03ae&gamma;&alpha; &mu;\u03cc&nu;&omicron; $0.062.\r\n2&omicron;&nu;: \u03ad&chi;&omega; 5 rented ref. &Tau;\u03ce&rho;&alpha; &mu;&pi;&omicron;&rho;\u03ce &nu;&alpha; &alpha;&gamma;&omicron;&rho;\u03ac&sigma;&omega; \u03ac&lambda;&lambda;&omicron;&upsilon;&sigmaf; 3 &mu;&epsilon; $0.6 &lambda;\u03ad&tau;&epsilon; &nu;&alpha; &tau;&omicron;&upsilon;&sigmaf; &alpha;&gamma;&omicron;&rho;\u03ac&sigma;&omega; &eta; &nu;&alpha; &pi;\u03ac&omega; $1 &kappa;&alpha;&iota; &nu;&alpha; &pi;\u03ac&rho;&omega; \u03ac&lambda;&lambda;&omicron;&upsilon;&sigmaf; 5;\r\n\r\n&Alpha;&upsilon;&tau;\u03ac &pi;&rho;&omicron;&sigmaf; &tau;&omicron; &pi;&alpha;&rho;\u03cc&nu;."
以上文字是(希臘):
Καλησπέρα αλάνια μου. Έχω κάποιες απορίες.
1ον: Η πράσινες διαφημίσεις μου δίνουν $0.01; Αν ναι τότε μάλλον έχω πρόβλημα γιατί είχα $0.60 πάτησα και της 4 πράσινες και πήγα μόνο $0.062.
2ον: έχω 5 rented ref. Τώρα μπορώ να αγοράσω άλλους 3 με $0.6 λέτε να τους αγοράσω η να πάω $1 και να πάρω άλλους 5;
Αυτά προς το παρόν.
現在,據我瞭解,它將字符串編碼爲HTML字符,因此在輸出之前,我這樣做:
$(".quote").click(function() {
$("#text").val($("<div>").html("[quote]" + postQuote[$(this).attr('name')] + "[/quote]").text());
});
這沒有幫助。輸出仍然與上面相同。
我在做什麼錯?
編輯:
$s = $dbh->prepare("
SELECT t.*, c.forum_name,
(SELECT count(*) FROM forum_posts WHERE topic_id=t.topic_id AND post_deleted=0) as posts
FROM forum_topics t
JOIN forum_cats c on c.forum_id = t.forum_id
WHERE t.topic_id=:id
");
$s->bindParam(':id', $id);
$s->execute();
$q = $s->fetch(PDO::FETCH_ASSOC);
while ($post = $p->fetch(PDO::FETCH_ASSOC)) {
//Postquote inside here.
}
我的表forum_posts
是utf8_general_ci
2日編輯:
好像用希臘字母的問題嗎?有什麼建議麼?
'json_encode()'工作在utf8字符串上,所以你的輸出看起來不太可能。你如何填寫'$ post'變量,你可以做一個'var_dump($ post);'? – jeroen 2014-10-29 14:47:54
@ jeroen請看我更新的問題。我已經包含了PHP。 – oliverbj 2014-10-29 14:51:54
您需要縮小問題的位置。看起來你在某處使用'htmlentities()'。 – jeroen 2014-10-29 15:07:06