2012-11-21 47 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是替換字符串中的所有事件)