簡體   English   中英

Smarty模板中的非拉丁字符在使用getDateLocal時顯示

[英]Non-latin characters in smarty template showing ���� while using getDateLocal

如何解決此錯誤? 我正在使用smarty模板。 這是代碼:

writeTR2($lngstr['page_visitordetails_startdate'], getDateLocal($lngstr['language']['date_format_full'], $i_rSet1->fields["startdate"]));

結果是 05,2013 04:16:39應該像這樣Март05,2013 04:16:39

我的數據庫和網站都使用UTF-8,在其他地方我沒有這個問題,一切都很好。 我的意思是西里爾字母顯示的很好。 但是當我使用此函數getDateLocal時出現問題。 當我將編碼更改為西里爾字母(ISO-8859-5)時,該功能向我顯示字符,但整個站點顯示不正確。 請幫幫我。

嘗試使用以下php函數:

convert_cyr_string ( string $str , string $from , string $to )

有關更多說明,請參考http://php.net/manual/zh/function.convert-cyr-string.php

我不特別了解getDateLocale ,但是如果它使用系統的語言環境系統,則需要以適當的編碼方式設置語言環境:

setlocale('en_US.UTF8');

請咨詢您的系統,可用的語言環境以及編碼方式。

始終表示在UTF-8環境中顯示非UTF-8字符。 您必須將getDateLocal()的輸出更改為UTF-8,或即時進行轉換:

$dateLocalConverted = iconv("ISO-8859-5", "UTF-8", getDateLocal($lngstr['language']['date_format_full'], $i_rSet1->fields["startdate"]));

但是,這是一個骯臟的解決方案-最好找出getDateLocal()為什么輸出ISO-8859-5數據並進行修復。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM