`
alexcheng
  • 浏览: 182536 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

XML转义与Base64

阅读更多

XML目前在各种场合用得都比较多,对于XML的转义,可能大家都不是很陌生。不过当一个XML文档被保存在HTML的DOM中,比如作为<textarea>的内容;或是作为URL的参数来传递时,经常会发生转义不匹配的情况。当该XML文档跨越多个系统边界的时候,有时候就很难追踪出问题到底出在哪儿。我的解决办法比较简单,那就不要转义了,我把XML文档直接用Base64编码一下再进行传递,用的时候再解码回来,这样就省掉了很多麻烦的事情。

 

用Dojo来作这个很容易,因为dojox.encoding包中就自带了Base64编码和解码的功能。示例代码如下:

dojo.require("dojox.encoding.base64");

var stringToBytes = function(s){
  var b = [];
  for(var i = 0; i < s.length; ++i){
    b.push(s.charCodeAt(i));
  }
  return b;
};



var bytesToString = function(b){
  var s = [];
  dojo.forEach(b, function(c){ s.push(String.fromCharCode(c)); });
  return s.join("");
};


var testStr = "Hello World";
var encoded = dojox.encoding.base64.encode(stringToBytes(testStr));
var decoded = bytesToString(dojox.encoding.base64.decode(encoded));
 
分享到:
评论

相关推荐

    PHP+JS Base64和URI编码解码

    Base64是一种将二进制数据转换为ASCII字符集的编码方式,主要应用于邮件系统、XML和JSON等文本格式的数据中。Base64编码把每3个字节(24位)的数据转换为4个Base64字符(每个6位,共24位)。在PHP中,可以使用`base...

    xml 的特殊字符的处理方法

    综上所述,处理XML中的特殊字符通常涉及转义、使用CDATA区或进行BASE64编码。选择哪种方法取决于具体的应用场景和需求。在进行XML操作时,确保正确处理这些特殊字符至关重要,以免引发解析错误或数据丢失。

    TextLab 1.4.4 代码格式转换工具 程序员必备

    TextLab 是一款Mac上实用的代码格式转换工具,可以转换和验证JSON、HTML、XML、Base64等代码格式,简单易用,很实用的一款开发辅助工具! 应用介绍 TextLab 是文本转换工具,可以执行哪些操作基于您输入的意思。...

    SublimeStringEncode:使用转换将字符从一种“编码”转换为另一种(认为HTML实体,而不是字符编码)

    这可能很方便(例如,如果您正在对文件进行base64编码),但也会产生意想不到的后果。 例如,您可能不应该在整个文本文档上使用URL Decode 。 您还可以对剪贴板进行编码,使用string_encode_paste命令,将显示一个...

    Converter.zip

    在IT领域,字符串处理、二进制、十六进制、UTF7、UCS2、Base64以及HTML编码等是日常工作中常见的数据表示和转换形式。"Converter.zip"中的"Converter.exe"工具显然是一个集成化的实用程序,专为CTF(Capture The ...

    java常用扩展工具jar包详解

    示例代码展示了如何使用`commons-codec.jar`进行MD5、SHA1散列计算以及Base64编码和解码: ```java // MD5散列 String str = "abc"; String md5Hex = DigestUtils.md5Hex(str); // SHA1散列 String sha1Hex = ...

    svg转css,css转svg,svg与css互相转换并压缩

    例如,SVG图形可以被编码为Base64字符串,然后插入到CSS中。这种方法的一个优点是可以避免额外的HTTP请求,提高页面加载速度。 CSS转SVG:尽管不常见,但有时可能需要将CSS效果转换为SVG,特别是在处理复杂的图形或...

    commons-io-2.6.jar

    2. Base64编码/解码:`Base64`类提供了Base64编码和解码功能,适用于数据加密和网络传输。 四、文件过滤器 `FileFilter`和`IOFileFilter`接口允许自定义文件过滤规则,如根据文件名、大小或最后修改日期进行筛选。...

    简单介绍Python中的decode()方法的使用

    在这个例子中,我们首先创建了一个普通的字符串,并使用`encode('base64', 'strict')`将其编码为Base64格式。然后,我们使用`decode('base64', 'strict')`将Base64编码的字符串解码回原始的Unicode字符串。 在实际...

    HTML5+php图片自由裁剪上传功能-www.srcfans.com

    - 利用AJAX(Asynchronous JavaScript and XML)技术,通过XMLHttpRequest对象实现异步数据传输,用户在裁剪图片并点击“upload”按钮后,将裁剪的图片数据(通常是Base64编码)发送到服务器。 - FormData对象可以...

    PHP在线工具箱源码 站长引流 在线工具箱源码 多款有趣的在线工具.zip

    1. **编码转换工具**:如ASCII到Unicode,HTML实体转义,Base64编码解码等,这些工具在处理字符串时非常实用。 2. **文本处理工具**:例如MD5或SHA加密,字符串查找替换,JSON与XML互转等,对于数据安全和格式化...

    Approaches and Best Practices in Web Service Style, Data Binding and Validation.pdf

    - **松散类型Web服务**:使用如`string`、`cdata section`、`xsd:any`和`base64 encoding`等数据类型,提供了灵活性但牺牲了类型安全。 - `string`类型:最通用的数据类型,适用于未知或变化的数据格式。 - `cdata...

    C# 培训模拟试题 (2)

    ### XML注释与类的构造函数 在C#中,可以使用XML注释来生成API文档,只需在函数或成员的上方输入`///`即可开始编写注释。而对于类的默认构造函数,如果类体中没有其他构造函数声明,那么C#编译器会自动生成一个无参...

    编码和加解密测试小工具

    Base64编码, MD5散列计算, SHA散列计算, DES对称加密, URL编码, UnixCrypt计算, 字符二进制, unicodeJS编码, XML字符串编码, HTML字符串编码, JS字符串编码, 网页转义符_10, 网页转义符_16, 进制转换_...

    dz 所有版本后台GET SHELL1

    之后通过base64编码和unserialize函数,实现代码注入。 2. **Exploit 示例** 在7.0版本中,使用类似的方法,但需要注意文件名的合法性。提供的exploit代码展示了如何构造XML数据包来绕过安全检查。例如,通过设置`...

    PHP网络编程技术与实践 源码

    2.5.2 Base64 编码解码 2.6 本章小结 第3章 使用PHP创建动态页面 3.1 页面参数的传递 3.1.1 通过URL传递参数 3.1.2 通过表单传递参数 3.2 处理HTTP头信息 3.2.1 页面重定向 3.2.2 设定文件的过期时间 3.2.3 用户认证...

    Java数据传输之消息字符串应用

    Java提供了`javax.xml.bind.JAXB`库来实现Java对象与XML之间的转换。以下是一个简单的例子: ```java import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller;...

    [资源]as3corelib库及帮助文档

    4. **加密算法**:`com.adobe.crypto`包包含MD5、SHA1和Base64等加密算法,对于数据安全和认证非常有帮助。 5. **日期和时间**:`com.adobe.utils.DateUtil`提供了一些高级日期和时间操作的功能,比如格式化日期...

    jsp字符过滤器

    图片过滤则可能包括验证图片的MIME类型、尺寸或内容,防止恶意图片注入,例如SQL注入的Base64编码图片。 四、安全实践 1. **输入验证**:对所有用户输入进行严格的验证,确保数据符合预期格式。 2. **转义特殊字符...

    WML学习资料(入门学习)

    **WML(无线标记语言)**是XML家族的一员,专为无线设备如手机设计,用于在小型显示屏上呈现内容和创建交互式用户界面。与HTML类似,WML提供了一种方式来构造和组织数据,但它的语法和用途更加专注于移动环境。 ###...

Global site tag (gtag.js) - Google Analytics