2013-05-08 21 views
0

我嘗試從使用javascript AJAX的XML文件加載城市名稱,並最終在它們上成功。將特殊字符轉移到正常字符

var region=Ahmadābād,Sūrat,Vadodara,Rājkot,Bhāvnagar,Jāmnagar,Nadiād,Gāndhīnagar,Jūnāgadh,Surendranagar 

這是我的輸出;在這個輸出一些字符內是不標準的美國ASCII和我想更換成普通字符,如:

var region:- Ahmadabad,Surat,Vadodara,Rajkot,Bhavnagar,Jamnagar,Nadiad,Gandhinagar,Junagadh,Surendranagar 

我怎麼能這樣做?

+0

可能重複(HTTP://計算器.com/questions/11815883/convert-non-ascii-characters-umlauts-accent-to-their-closest-ascii-equivalents) – 2013-05-08 10:57:05

+1

爲什麼你想打破名字的拼寫?問你爲什麼認爲你需要強迫名字使用在20世紀60年代定義的角色曲目會更有建設性。 – 2013-05-08 10:58:52

回答

0

這是一個純JavaScript解決方案雖然不是最佳的,並且可能執行不好:

// create a character map to convert one char to another 
var charMap = { 
    "ā" : "a", 
    "ū" : "u" 
}; 
var region="Ahmadābād,Sūrat,Vadodara,Rājkot,Bhāvnagar,Jāmnagar,Nadiād,Gāndhīnagar,Jūnāgadh,Surendranagar"; 

// split original string into char array 
var chars = region.split(''); 
// init new array for conversion result 
var charsConverted = []; 

// convert characters one by one 
for(var i = 0; i < chars.length; i++){ 
    var char = chars[i]; 
    // this will try to use a matching char from char map 
    // will use original if no pair found in charMap 
    charsConverted.push(charMap[char] || char); 
} 

// join array to string 
var result = charsConverted.join(''); 

alert(region); 
alert(result); 

同樣,這只是一個想法,可能需要大量的調整的。

代碼在行動:http://jsfiddle.net/L5Yzf/

HTH

[轉換非ASCII字符(變音,口音......)爲與其最接近的ASCII當量(塞創作)