首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ajax自动完成字符编码丢失

问Ajax自动完成字符编码丢失
EN

Stack Overflow用户
提问于 2011-12-27 15:57:20
回答 1查看 1.4K关注 0票数 0

该方案是html表单中的文本输入字段,使用jQuery.autocomplete自动完成并获得适当的服务器响应(例如,城市名称json列表)。整个包裹运作良好..。但是,当输入重音字符(éèà.)时,客户端不会从服务器返回数据。和很多次一样,我似乎面临着一个字符编码问题,但是尽管多次尝试,我仍然无法找到解决它的方法和方法(艾特夫,编码,编码,urldecode.)比如像这一个这样的读数。

因此,我需要一些帮助/提示来理解在哪里(在原型化jQuery自动完成代码之前. ?)

编辑:可能也是一个jQuery重音折叠问题,我也会尝试这样的话。

  • 配置: 服务器: Apache2.2 (debian lenny) php :已编译5.3.3 (因此JSON_UNESCAPED_UNICODE选项对编码,编码不可用) mysql: 5.1.49与MySQL字符集: UTF-8 Unicode (utf8) 类:使用修改后的PFBC2.x版本构建php表单。
  • 元数据 该网站主要是为法国用户设计的,所以它都是用ISO-8859-1设计的(我想这是个糟糕的初始选择):
  • // jQuery自动完成代码(应用于城市输入字段)//调试测试(测试w/o $charset_attr: no $charset_attr )$charset_attr= 'contentType:‘contentType回声'jQuery("#’.$这个->属性“id.‘).autocomplete({来源:’,$this->xhr_path .‘,’,minLength:2,‘。$charset_attr .‘}); 为该输入字段生成的代码与上述期望匹配。
  • 使用utf8将mysql行转换为这一功能: 在将json发送回客户机之前,我将msyql返回的数组转换为utf8。实际上,我还测试并编写了其他函数,但这并没有改变任何事情,所以我想问题并不存在。 $encoded_arr = utf8json($returnData);回波json_encode($encoded_arr);$returnData();
  • 编码控制1(客户端) html表单中的嵌入控件,以检查哪些字符编码实际上被传递给jQuery.autocomplete:jQuery(文档).ready(函数()){警告(检查字符集服务器编码:‘+;//输出: ASCII });
  • 编码控制2(服务器端)$inputData= (isset($_GET))?htmlspecialchars($_ get‘’term,ENT_COMPAT,'UTF-8'):NULL;$encoding_get =mb_detect_encoding($_get‘’term);$encoding_data = mb_detect_encoding($inputData);$utf8converted = @iconv(strtolower($encoding_get),'utf-8',$inputData);$checkconversion =mb_detect_encoding($utf8converted);发送小写普通字符(ea.),I都是ASCII。 发送小写重音字符(éèà..),我得到所有的UTF8。

因此,当服务器接收到正确的char字符串时,我就迷路了,生成一个json返回(在没有ajax的情况下进行了测试),但是客户端似乎没有正确地接收或插入这个字符串。

EN

回答 1

Stack Overflow用户

发布于 2011-12-30 01:42:48

对于那些面临同样的...%$@问题的人,下面是我为解决我的问题所做的工作:

  • 检查每个节点(例如客户端、apache服务器、mysql服务器)上的字符编码,在服务器端使用编码,
  • 最后指出了问题位置节点:在我的示例中,将UTF8字符传递给mysql服务器i/o拉丁文ISO8859-1,因此mysql服务器没有返回预期的答案,我无法用直接的url POSTing数据对服务器脚本进行检测或调试。因此,我将输入和输出记录在一个文件中,检查条目字符编码和mysql服务器输出。
  • 将ajax请求更改为POST i/o GET,
  • 在发送mysql服务器请求之前,通过将$_POST数据编码到ISO解决问题,使用编码,以及描述好的这里。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8646574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档