Tag: 编码

ajax请求后无法识别中文字符串

我写了一个Ajax请求来POST数据。 Web服务XML信息如下所示: +story_id+ +User_Name+ +Story__CreateTime+ +Story_Name+ $.ajax({ type: “POST”, url: webServiceAddNewStoryImgUrl, contentType: “text/xml”, dataType: “xml”, data: soap_add_new_story_image, success: process_update_pic_success, error: process_add_new_img_Error }); 我从文本文件中获取中文字符串,将其分配给变量Story_Name。 在此之后,我向webservice发出请求,但是中文字符串显示了????????。 无论我输入什么,它只显示中文字符串“?????”…. 据我所知,在webservice上声明的字符串(在C#中实现)编码为Unicode,javascript字符串也编码为UTF-8(?)。 我无法弄清楚为什么会这样。 我做了一个测试:我在webservice上运行调试器并直接输入中文字符串。 这一次,它显示正确! 为什么会这样? ps:我基于Android系统创建应用程序,并使用PhoneGap API读取移动设备上的字符串。 有什么建议?? 任何帮助或建议,请。 我已经在这个问题上花了几天时间,尝试了很多方法,但是所有这些都是在VAIN中。

xml编码和jquery解析

我在使用jquery读取xml文件时遇到了一些麻烦,这些文件在我的xml中包含了swedish chars(åäö)。 如果我使用它无关紧要 要么 我仍然会在jquery中得到一个parseerror。 但是,如果我在notepad ++中打开文件并使用“utf-8 without BOM”保存,它将起作用。 但这不是一个选择,因为我不能假设所有用户都会这样做。 我该如何解决这个问题? 谢谢!

asp.net mvc编码在表单上

我在我的asp.net mvc表单中使用了富文本编辑器(带有textarea的nicedit),当我在post上提交表单时,因为它不是html编码,我收到以下消息:“一个有潜在危险的Request.Form值从客户端检测到“。 我如何在post上对textarea进行html编码? 我不想取消validation。 有没有办法在提交时使用html.encode助手? 谢谢。

CURL不编码UTF-8

我正在使用Windows 10和curl 7.52.1 。 当我尝试将数据发布到WEBSERVICE时, curl不会将字符编码为UTF-8 (我需要显示pt-BR字符,如àáçÇãõ等) 是的,我已经检查了这个 ,没有成功。 如果我将编码页面设置为chcp 65001 ,则错误仍然存​​在。 更改为chcp 1252部分解决了问题。 看,如果我在没有任何chcp更改的情况下提示echo Administração >> test.txt ,我会得到一个Administra‡Æo 。 更改为chcp 65001我获得了Administração 。 更改为chcp 1252我终于获得了Administração 。 但是使用curl,没有任何改变。 我已经尝试设置标题内容类型 ,没有幸运: curl -X POST -h “Content-Type: text/plain; charset=UTF-8” –data-ascii “name=Administração” http//:localhost:8084/ws/departments 我得到以下输出: {“holder”:{“entities”:[{“name”:”Administra��o”,”dateReg”:”Dec 29, 2016 2:05:33 PM”}],”sm”:{}},”message”:{“text”:””},”status”:-1} 当我运行时(在JQuery )我还检查了它接受字符编码的WS : $.ajax({ url:”http://localhost:8084/ws/departments”, type:”POST”, data: {name: “Administração”}, success: […]

将arraybuffer转换为string:超出了最大调用堆栈大小

这是我的代码行。 var xhr = new XMLHttpRequest(); xhr.open(‘GET’,window.location.href, true); xhr.responseType = “arraybuffer”; xhr.onload = function(event) { debugger; console.log(” coverting array buffer to string “); alert(String.fromCharCode.apply(null, new Uint8Array(this.response))); }; xhr.send(); 该请求正在制作一个大约3 MB的pdfurl。 阅读几个线程有相同的错误,告诉必须有一些递归调用,但我没有在这里看到任何递归调用。 有帮助吗?

如何通过ajax调用在新的浏览器窗口中显示来自服务器的pdf(或任何文档)

如何使用ajax调用服务器在新的浏览器窗口中呈现文档。 到目前为止,我已经完成了以下工作。 步骤1:在按钮单击并传递文件名时对服务器进行ajax调用: $(document).ready( function(){ $(‘#clickme’).click(function(){ $.ajax({ type:”GET”, url:”App/getfile”, data:{‘filename’:’D:\\sample.pdf’} }).done(function(msg){ var wind = window.open(“_blank”); wind.document.write(msg); }); }); } ); 第2步:我在服务器端使用spring controller: package my.test; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller public class ServeFiles { @RequestMapping(value=”getfile”,method=RequestMethod.GET,produces=”application/pdf”) public void serve(HttpServletRequest request,HttpServletResponse response) throws Exception{ InputStream is […]

更改JavaScript字符串编码

目前我有一个很大的JavaScript字符串,我试图写入一个文件,但采用不同的编码(ISO-8859-1)。 我希望使用像downloadify这样的东西。 Downloadify只接受普通的JavaScript字符串或base64编码的字符串。 因此,我决定使用JSZip压缩我的字符串,它生成一个很好的base64编码字符串,可以传递给downloadify,然后下载到我的桌​​面。 好哇! 问题是我压缩的字符串当然仍然是错误的编码。 幸运的是,JSZip可以将Uint8Array作为数据而不是字符串。 那么有没有办法将JavaScript字符串转换为ISO-8859-1编码的字符串并将其存储在Uint8Array中? 或者,如果我接近这一切都错了,那么一起有更好的解决方案吗? 是否有一个花哨的JavaScript字符串类可以使用不同的内部编码? 编辑:为了澄清,我不是将这个字符串推送到网页,所以它不会自动转换为我。 我正在做这样的事情: var zip = new JSZip(); zip.file(“genSave.txt”, result); return zip.generate({compression:”DEFLATE”}); 为此,我需要使用正确的编码结果(而JSZip只需要字符串,数组缓冲区或uint8arrays)。 最终编辑(这不是一个重复的问题,因为结果没有显示在浏览器中或传输到可以更改编码的服务器): 事实certificate这比我想象的更加模糊,所以我最终推出了自己的解决方案。 它不像正确的解决方案那样强大,但它会将JavaScript字符串转换为windows-1252编码,并将其粘贴在Uint8Array中: var enc = new string_transcoder(“windows-1252”); var tenc = enc.transcode(result); //This is now a Uint8Array 然后你可以像我一样在数组中使用它: //Make this into a zip var zip = new JSZip(); zip.file(“genSave.txt”, tenc); return zip.generate({compression:”DEFLATE”}); 或者使用此字符串编码库将其转换为windows-1252编码的字符串: […]

jQuery .load()在IE10中不起作用

我在使用IE 10和jQuery .load()时遇到了问题。 我有一个PHP页面,我加载网站后加载: $(document).ready( function() { $(‘#words’).html(‘Analyzing frequency data…’); $(‘#words’).load(‘translate.php?character=’); }); 它在Chrome中运行良好,但在IE中,“加载”文本出现约1秒钟后消失,并且translate.php文件永远不会加载。 如果我将代码更改为 $(document).ready( function() { $(‘#words’).html(‘Analyzing frequency data…’); $(‘#words’).load(‘index.php’); }); 它加载很好。 但是,如果我将代码更改为: $(document).ready( function() { $(‘#words’).html(‘Analyzing frequency data…’); $(‘#words’).load(‘translate.php?character=章’); }); 仍然不起作用。 另外,当我在translate.php文件中回显字符时,它会显示“?” 这让我相信有一个字符编码问题。 然而: 所有页面都编码为“UTF-8无BOM” 我在标签中有 未从translate.php加载的中文字符显示正常 是不是jQuery加载只在IE中填充编码? 我搞不清楚了! 谢谢,丹

重音ajax编码问题

源文件有: header(‘Content-type: text/html; charset=iso8859-1’); 源ajax(jQuery)脚本是: $(document).ready(function() { $.ajaxSetup({ cache: false }); $(“#searchfield”).keyup(function(){ $(“#insert_search”) .load(‘ajax/searchobjects.php’, {search_word: $(“#searchfield”).val()}, function(){ }); }); }); 目标文件: header(‘Content-type: text/html; charset=iso8859-1’); echo $_POST[‘search_word’]; 发送的数据: é 结果是: é 所有的文件: Western (ISO Latin 1) (using TextWrangler) 有趣的是:我可以使用重音将记录插入MySQL中。

如何通过jQueryMobile 1.3.1中的AJAX加载带有正确字符编码的ISO-8859-1内容?

我有一个生成ISO-8859-1内容的PHP脚本(CMS)(在后台还有一个带有Latin1数据的数据库)。 为了可视化移动设备上的数据,我使用jQuery Mobile 1.3.1。 通常,如果在HTML中使用正确的元标记,则字符编码没有问题: 但是jQuery Mobile有这个默认设置: $.mobile.ajaxEnabled = true; 因此,jQuery Mobile将尽可能自动处理链接点击并通过Ajax表单提交。 这是一个非常聪明的function,但它会摧毁一些像德国变形金刚这样的特殊角色,你会得到这个令人讨厌的角色: