2016-06-20 18 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

相关问题