問題描述
我正在嘗試使用法語字符.無論出于何種原因,PHP 都不會正確輸出它們,除非我強制使用 ISO-8859-1 字符集(我真的不想這樣做);它不會讓我使用 UTF-8.
因此,當我強制 ISO-8859-1 時對我的數組執行 print_r()
會產生以下結果:
數組([0] =>標準類對象([語言] =>fr[語言選擇] =>一世[s1next] =>前鏈[hascodespan] =>Avez-vous déjà un code d'enregistrement?[s2prev] =>先例[s2next] =>Oui, j'ai déjà un 代碼.[編碼說明] =>Un E-Code vous donne un accès exclusif à des événements vraiment cool.Si vous êtes dans le besoin d'un code, vous pouvez en acheter un dans notre Boutique en ligne envisitant celien <a href="#">Boutique en ligne</a>.[購買] =>Cliquez ici 澆注 acheter en ligne 鋼坯[ecodespan] =>S'il vous pla?t entrer votre 電子代碼[ecodelocdescription] =>Votre code peut être trouvé ci-dessous le code à barres sur votre billet[s3prev] =>先例[s3next] =>前鏈[驗證文本] =>驗證電子代碼...... Un 即時.))
使用UTF-8時,輸出如下:
數組([0] =>標準類對象([語言] =>fr[語言選擇] =>[s1next] =>前鏈[hascodespan] =>Avez-vous d j un code d'enregistrement?[s2prev] =>客戶[s2next] =>Oui, j'ai d j un 代碼.[編碼說明] =>Un E-Code vous donne un acc s exclusif des v nements vraiment cool.Si vous tes dans le besoin d'un code, vous pouvez en acheter un dans notre Boutique en ligne envisitant celien <a href="#">Boutique en ligne</a>.[購買] =>Cliquez ici 澆注 acheter en ligne 鋼坯[ecodespan] =>S'il vous pla t entrer votre 電子代碼[ecodelocdescription] =>Votre code peut tre trouv ci-dessous le code barres sur votre billet[s3prev] =>客戶[s3next] =>前鏈[驗證文本] =>驗證電子代碼...... Un 即時.))
在這兩種情況下,執行 json_encode()
會產生以下結果:
我的數據庫設置為 UTF-8,但出于某種奇怪的原因,每次我插入帶有法語字符的任何內容時,它都會將自身恢復為某種西歐編碼.
主要是,我真的需要 json_encode()
返回有效結果,以便我可以在翻譯中使用它.我嘗試了 iconv()
和 utf8_encode()
,但都無濟于事.
任何幫助將非常感激.
我設法弄明白了.這不是我真正想要的解決方案,但它有效.我不得不調整我的查詢看起來像:
CONVERT(CAST(langselect as BINARY) USING latin1) as langselect
I'm trying to work with French characters. For whatever reason, PHP won't output them correctly unless I force the ISO-8859-1 character set (which I really don't want to do); it won't let me use UTF-8.
So doing a print_r()
of my array when I force ISO-8859-1 yields the following:
Array
(
[0] => stdClass Object
(
[language] => fr
[langselect] => ?
[s1next] => Prochain
[hascodespan] => Avez-vous déjà un code d'enregistrement?
[s2prev] => Précédent
[s2next] => Oui, j'ai déjà un code.
[ecodedescription] => Un E-Code vous donne un accès exclusif à des événements vraiment cool. Si vous êtes dans le besoin d'un code, vous pouvez en acheter un dans notre boutique en ligne en visitant ce lien <a href="#"> boutique en ligne</ a>.
[purchase] => Cliquez ici pour acheter en ligne billets
[ecodespan] => S'il vous pla?t entrer votre e-code
[ecodelocdescription] => Votre code peut être trouvé ci-dessous le code à barres sur votre billet
[s3prev] => Précédent
[s3next] => Prochain
[validationtext] => Validation E-Code ... Un instant.
)
)
When using UTF-8, the output is as following:
Array
(
[0] => stdClass Object
(
[language] => fr
[langselect] => ?
[s1next] => Prochain
[hascodespan] => Avez-vous d?j? un code d'enregistrement?
[s2prev] => Pr?c?dent
[s2next] => Oui, j'ai d?j? un code.
[ecodedescription] => Un E-Code vous donne un acc?s exclusif ? des ?v?nements vraiment cool. Si vous ?tes dans le besoin d'un code, vous pouvez en acheter un dans notre boutique en ligne en visitant ce lien <a href="#"> boutique en ligne</ a>.
[purchase] => Cliquez ici pour acheter en ligne billets
[ecodespan] => S'il vous pla?t entrer votre e-code
[ecodelocdescription] => Votre code peut ?tre trouv? ci-dessous le code ? barres sur votre billet
[s3prev] => Pr?c?dent
[s3next] => Prochain
[validationtext] => Validation E-Code ... Un instant.
)
)
In both instances, executing a json_encode()
yields the following result:
[
{
language: "fr",
langselect: null,
s1next: "Prochain",
hascodespan: null,
s2prev: null,
s2next: null,
ecodedescription: null,
purchase: "Cliquez ici pour acheter en ligne billets",
ecodespan: null,
ecodelocdescription: null,
s3prev: null,
s3next: "Prochain",
validationtext: "Validation E-Code ... Un instant."
}
]
I have my database set to UTF-8, yet for some odd reason every time I insert anything with French characters it reverts itself to some Western European encoding.
Mainly, I really need json_encode()
to return valid results so I can use it in my translations. I have tried iconv()
and utf8_encode()
, but to no avail.
Any help would be greatly appreciated.
I managed to figure it out. It's not really the solution I wanted but it works. I had to adjust my query to look like:
CONVERT(CAST(langselect as BINARY) USING latin1) as langselect
這篇關于json_encode 不會編碼法語字符的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!