[英]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.