首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用JavaScript读取xml格式的UTF-8十六进制代码

使用JavaScript读取xml格式的UTF-8十六进制代码
EN

Stack Overflow用户
提问于 2012-08-17 13:00:31
回答 2查看 985关注 0票数 0

我有一个xml文件,其中包含En -破折号和Em -破折号字符作为元素文本的一部分。它们将被转换为UTF-8代码,如下所示。

代码语言:javascript
运行
复制
<TextValue>This is an En Dash:  \xE2\x80\x93    This is an Em Dash: \xE2\x80\x94.</TextValue>

我想用JavaScript解决那些UTF-8十六进制代码,并用我想要的任何自由文本替换它们。

有没有人能给出一些建议呢?我尝试使用RegEx,但无法解析这些代码。不过,我可以使用RegEx处理任何其他文本。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-17 13:21:44

DEMO

代码语言:javascript
运行
复制
var text = "<TextValue>This is an En Dash:  \xE2\x80\x93    This is an Em Dash: \xE2\x80\x94.</TextValue>"

var fromArr = ["\xe2\x80\x98", "\xe2\x80\x99", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\x93", "\xe2\x80\x94", "\xe2\x80\xa6"],
    toArr = ["'", "'", '"', '"', '-', '--', '...'];

    for (var i=0;i<fromArr.length;i++) {
        text = text.replace(fromArr[i],toArr[i],"g")
    }
        alert(text)

更改为

代码语言:javascript
运行
复制
 var fromArr = ["\xe2\x80\x93", "\xe2\x80\x94"], toArr = [ '-', '--'];

如果您不需要使用智能引号和省略号

结果:

票数 1
EN

Stack Overflow用户

发布于 2012-08-24 04:53:22

最后,我阅读了UTF-8格式的邮件正文,并使用以下几行代码替换了unicodes。

代码语言:javascript
运行
复制
body = body.replace(/\u00E1/g,"a");  //LATIN SMALL LETTER A WITH ACUTE
body = body.replace(/\u00E2/g,"a");  //LATIN SMALL LETTER A WITH CIRCUMFLEX
body = body.replace(/\u00E3/g,"a");  //LATIN SMALL LETTER A WITH TILDE
body = body.replace(/\u201D/g,"\"");  //RIGHT DOUBLE QUOTATION MARK
body = body.replace(/\u201C/g,"\"");  //LEFT DOUBLE QUOTATION MARK
body = body.replace(/\u2424/g," ");  //NEW LINE \n
body = body.replace(/\u000D/g," ");  //CARRIAGE RETURN \r
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12000040

复制
相关文章

相似问题

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