2013-05-08 91 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当量(塞创作)