2016-06-20 36 views
0

我需要將日期格式翻譯成日語語言環境,但它顯示錯誤的輸出。我也嘗試通過更改瀏覽器的語言環境,但它不適用於鉻和IE時刻js沒有正確翻譯日語格式的日本語區域

app.filter('japan', function() { 
      return function(dateString, format) { 
       return moment().locale('ja').format('LLLL'); 
      }; 
     }) 

輸出的格式是2016蟷エ6譛20譌·蜊亥燕11譎ñ蛻譛域屆譌·

需要的輸出是2016年6月20日午前11時30分月曜日

+2

我不認爲這是Moment的問題。這是[mojibake](https://simple.wikipedia.org/wiki/Mojibake)。首先,確保您的網站使用UTF8或UTF16編碼(UTF8是事實標準)。您可能還需要根據語言環境調整「」元素上的'lang'屬性。 – JLRishe

+0

謝謝@JLRishe在添加UTF8之後它的工作正常,非常感謝你的幫助 –

+0

很高興聽到這個消息。我在下面添加了更豐富的答案。如果您通過點擊複選標記圖標將其標記爲已接受的答案,我將不勝感激。 – JLRishe

回答

0

這不是Moment的問題。這是一種編碼問題,被稱爲mojibake,當頁面的編碼不能正確處理您使用的字符時,可能會發生這種情況。一般來說,最好使用UTF-8或UTF-16這樣的中性編碼(UTF-8是事實上的標準),從上面的評論看來,這聽起來確實解決了你的問題。

此外,最好在包含您的本地化內容的元素上設置lang=""屬性(您可以將其作爲<html>元素的高度),因爲根據區域設置,某些字符可能會有不同的外觀。

以您的文字爲例,角色曜的右上角部分看起來像羽與lang="zh",但看起來像兩個並排ヨs與lang="jp"

+0

在chrome載入頁面時它的顯示正確,但是當我們從其他頁面返回到頁面時,它顯示mojibake,它再次顯示mojibake –

+0

您可以想到爲什麼當您回溯到頁面時編碼可能無法正確設置的任何原因?如果不瞭解更多具體情況,恐怕我不能提供很多建議。 – JLRishe

相關問題