2

我目前正在使用 jQuery Grid 来显示用西班牙语编写的数据,数据完美地显示为带有重音符号 (´) 但是每当我尝试使用重音符号搜索数据时,服务器都会得到一个格式错误的字符串,例如 ∫√ 而不是带有重音符号的字母。

我也确信这是一个 jQuery Grid 问题,因为我能够发送带有重音的数据,并在同一页面中提交表单。

我还在标题中添加了内容类型,如下所示:

<%@ page contentType="text/html;charset=UTF-8" %>
<sj:head jquerytheme="redmond" locale="es" />

这是我与 struts2 插件一起使用的 jQuery 网格的代码。

<s:url id="remoteurl" action="tabla-historial-director"  />
<s:url id="selectperiodourl" action="periodos" />

<sjg:grid
    id="grid"
    caption="Trabajos Terminales dirigidos"
    dataType="json"
    href="%{remoteurl}"
    pager="true"
    navigator="true"
    navigatorAdd="false"
    navigatorDelete="false"
    navigatorEdit="false"  
    gridModel="gridModel"
    rowList="3,10,15,20"
    rowNum="10"
    hidegrid="false"
    gridview="true"
    viewrecords="true"
>
    <sjg:gridColumn 
    align="center"  
        name="numRegistro"
        index="numRegistro"
        title="No. de registro"
        width="120"
        sortable="true"
        search="true"
        searchoptions="{sopt:['eq']}"
    />
    <sjg:gridColumn
        name="titulo"
        index="titulo"
        title="Título"
        width="840"
        search="true"
        searchoptions="{sopt:['cn']}"
    />
    <sjg:gridColumn
        align="center"
        name="tipo"
        index="tipo"
        title="Tipo"
        width="60"
        search="false"
    />
    <sjg:gridColumn
        align="center"
        name="periodo"
        index="periodo"
        title="Periodo"
        width="80"
        search="true"
        surl="%{selectcountrysurl}"
        searchoptions="{sopt:['eq'], dataUrl : '%{selectperiodourl}'}"
        searchtype="select"
    />
    <sjg:gridColumn
        align="center"
        index="objetivo"
        name="objetivo"
        editable="true"
        sortable="true"
        hidden="true"
        editrules="{ edithidden : true } "
        title="Objetivo"
        width="20"
    />
    <sjg:gridColumn 
        search="false"
        sortable="false"
        name="idTT"
        key="true" 
        title="Acción"
        width="80"
        formatter="formatLink"
    />
</sjg:grid>

请我想知道如何使用搜索按钮和西班牙口音,非常感谢您的帮助。

4

1 回答 1

0

有人可能在这里解决了类似的问题: JQuery punctuation for spanish (ó, í, etc.) not working in IE8

他做了以下事情:

header("text/html; charset=iso-8859-1");

以下是此答案中的更多线索: jQuery AJAX Character Encoding

这家伙说:“UTF-8 应该处理所有的重音和外来字符——为什么不在你的数据源上使用它呢?

首先,一切都应该是 UTF-8。我在 notepad++ 中加载了文件,转换为 utf-8 并手动将字符更改为重音。一旦完成,一切都会像魅力一样工作。

顺便说一句,除非您的服务器被定义为 php-process .html 文件,否则您使用 ajax 加载的文件不会获得您的 iso 字符集。如果您坚持使用 iso 字符集,请请求 php 文件而不是 html 文件,并在标题中定义字符集(而不是在文件本身中)”

这对你有帮助吗?

您可以随时尝试 html 友好代码,并将它们替换为您的搜索: http ://webdesign.about.com/od/localization/l/blhtmlcodes-sp.htm

另一个人在这里遇到了一些西班牙语字符问题:http: //ianloic.com/2009/12/27/jquery-selector-escaping/

他写了一个转义函数,可能不是你想要的:

(function($) {
if ($) {
var escape_re = /[#;&,\.\+\*~':"!\^\$\[\]\(\)=>|\/\\]/,
escapeCharacters = {
‘#’: 1,
‘;’: 1,
‘&amp;’: 1,
‘,’: 1,
‘.’: 1,
‘+’: 1,
‘*’: 1,
‘~’: 1,
‘\”: 1,
‘:’: 1,
‘”‘: 1,
‘!’: 1,
‘^’: 1,
‘$’: 1,
‘[': 1,
']‘: 1,
‘(‘: 1,
‘)’: 1,
‘=’: 1,
‘&gt;’: 1,
‘|’: 1,
‘/’: 1,
‘\\’: 1
};
$.escape = function(s){
var ret = ”, offset;
if (s && ((offset = s.search(escape_re)) !== -1)) { // look for an occurence of a special character
ret = s.substr(0, offset) + ‘\\’ + s[offset];
for(var i=offset + 1, len=s.length, ch; i < len; i++){ // assume that another special character may occur so we just loop through the rest of the string
ch = s[i];
ret += (escapeCharacters[ch]? '\\': '') + ch;
}
}
return ret;
};
}
})(window.jQuery);

hth

于 2012-08-28T02:21:48.670 回答