2012-11-21 46 views
0

我有这个问题: 我有一个javascript,保存在数据库字段,即将用于网页作为href目标,例如,JavaScript和html字符转义

insert into table_with_links (id, url) 
     values (1, 'javascript:var url="blö blö";.....'); 

// run scripts that use the database values to generate web pages 

// part of the generated html code: 
<a href="javascript:var url='blabla';..... </a> 

到目前为止没有问题。我在JavaScript中使用了德语字母(Umlaute - 例如ö)。我不应该拯救德国的信件在数据库中,所以我逃避他们:

insert into table_with_links (id, url) 
     values (1, 'javascript:var url="bl%F6 bl%F6";.....'); 

现在问题来了 - 我不应该存储在数据库中的迹可寻,因为生成脚本网页无法正确处理。我想你可以想象这些脚本是如何使用第三方脚本并且不能改变的。

所以,我的问题是 - 我也可以转义%符号吗?

+1

什么数据库你在用吗?许多数据库都支持unicode字符集。也许你应该切换数据库 – jeremy

+0

它是oracle,但是当我存储德文字母时还有其他不一致之处。所以,这在技术上是可行的,但我不应该这样做。 – user1414745

回答

2

你试过吗? :

var str= "remove the %"; 
var str_n = str.replace("%",""); 

这里的基本http://www.w3schools.com/jsref/jsref_replace.asp

那么你可以使用字符数组来代替采取这里看看javascript replace globally with array

+2

恕我直言,w3schools没有[可靠的参考来源](http://w3fools.com/)*任何*。 –

+0

这是什么意思? w3c是标准我没有其他网站的标准 – sbaaaang

+3

w3schools绝不隶属于W3C。花点时间看看链接。 –

1

我会建议使用内置的国际化甲骨文,甲骨文能够处理特殊德语字符:

http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/u_i18n.htm

如果你想哈ndle它你自己,我建议做一个字符串替换到一些你知道的序列:

var str = str.replace(/ö/g,"[german-umlaute]"); 

(在/ O /克到底g是替换字符串中的所有事件)