0

ASP.NET MVC 3 を使用しています。グリッドには次の構成があります。

grid.jqGrid({
        data: pages,
        datatype: 'json',
        emptyrecords: 'No hay proyectos cargados',
        colNames: ["Código", "Descripción", "Rev", "Cliente", "Tipo"],
        colModel: [
                 { name: 'Codigo', index: 'Codigo', width: 100 },
                 { name: 'Descripcion', index: 'Descripcion asc, Descripcion', width: 200 },
                 { name: 'Rev', index: 'Rev', width: 100, align: "right" },
                 { name: 'Cliente', index: 'Cliente', width: 200, align: "right" },
                 { name: 'Tipo', index: 'Tipo', width: 200, align: "right" }
               ],
        rowNum: 10,
        pager: '#dPager',
        sortname: 'Codigo',
        viewrecords: true,
        sortorder: "desc",
        beforeRequest: function() {
            if (pages.length === 0) {
                grid[0].p.page = 0;
            }
        },
        height: 'auto',
    });

列名「Código」と「Descripción」には、「ó」文字の代わりに奇妙な記号 (白いクエスチョン マークが入った黒いひし形) が表示されます。

ご参考までに:

  • レンダリングされるビューには他にも「ó」文字があり、ページのエンコーディングとは何の関係もないと思われます (参考までに、DOCTYPE タグは _Layout.cshtml に表示される標準です)。
  • jqGrid 自体は、 grid.locale-es.js に表示される限り、他のコントロールで特別な「ó」文字をレンダリングします。たとえば、「Page X of Y」のリテラルは「Página X de Y」であり、「óóóóóóóóó X de Y」に変更すると、適切にレンダリングされます。
  • たとえば、emptyrecords エントリを "óóóóóó" に変更すると、同じ問題が発生します。

なぜこれが起こるのですか?

4

1 に答える 1

1

これは、サイトに一致する正しいエンコーディングがないjavascriptファイルにこのスクリプトを配置したために発生する可能性があります。

したがって、たとえば、サイトがUTF-8の場合は、.jsファイルをUTF-8とBOMで保存していることを確認してください。

  • Visual Studioで.jsファイルを開き、File->Save As
  • Saveボタンの横にある下向き矢印をクリックします
  • 選択するSave with Encoding ...
  • ドロップダウンリストから次を選択しますUnicode (UTF-8 with signature) - Codepage 65001

ここに画像の説明を入力してください

于 2012-08-17T18:25:06.093 に答える