2016-06-20 15 views
0

日付フォーマットを日本語のロケールに変換する必要がありますが、出力が正しく表示されません。ブラウザのロケールを変更してみましたが、クロムとIEの両方で動作しません。日本語のロケールの日付フォーマットを正しく翻訳していない

フォーマットの
app.filter('japan', function() { 
      return function(dateString, format) { 
       return moment().locale('ja').format('LLLL'); 
      }; 
     }) 

出力される2016蟷エ6譛20譌・蜊亥燕11譎N蛻譛域屆譌・

必要な出力は、2016年6月20日午前11時30分月曜日

あります
+2

私はこれが瞬間の問題だとは思わない。これは[mojibake](https://simple.wikipedia.org/wiki/Mojibake)です。最初に、サイトでUTF8またはUTF16エンコーディングを使用していることを確認します(UTF8はデファクトスタンダードです)。ロケールに応じて ''要素の 'lang'属性を調整する必要があるかもしれません。 – JLRishe

+0

UTF8を追加した後に@JLRisheさんに感謝します。助けを借りてくれてありがとうございました –

+0

それを聞いてうれしいです。私は以下のより洗練された答えを追加しました。チェックマークのアイコンをクリックして、それを受け入れられた回答としてマークしていただければ幸いです。 – JLRishe

答えて

0

これはMomentでは問題ありません。これはmojibakeとして知られているエンコーディングの問題で、使用している文字を正しく処理しないエンコーディングがページにある場合に発生する可能性があります。一般に、UTF-8やUTF-16(UTF-8はデファクトスタンダード)のような中立的なエンコーディングを使用することが望ましいです。上のコメントから、実際にこの問題が解決されたようです。

また、ローカライズされたコンテンツを含む要素にlang=""属性を設定することをお勧めします(<html>要素の上位にすることができます)。これは、特定の文字がロケールによって異なる外観を持つ可能性があるためです。

テキストを例にとると、文字曜の右上の部分はlang="zh"で羽のように見えますが、2つ並んでいるように見えます(lang="jp")。

+0

ロード中のページが正しく表示されているにもかかわらず、他のページからページに移動したときにモジバークが表示される場合は、再度mojibakeを表示します –

+0

ページに戻ったときにエンコーディングが正しく設定されない理由が考えられますか?私はあなたの状況の詳細を知らずに多くのアドバイスを提供することはできません。 – JLRishe

関連する問題