2012-08-22 48 views
2

我在我的網站中有一個聊天功能,並且此功能沒有正確顯示土耳其字符。所以,我在下面寫了這個函數,但它什麼也沒有返回。它出了什麼問題?文本以字符串形式獲得註釋用土耳其語配置替換char字符串

function FindAndReplaceAll(text) 
{ 
    var normal = new Array("ı","Å?","ü","ç","ö","Ä?","ÅŸ","Ç","Ä°","ÄŸ","Åž","Ö","Ãœ","ı","Å?","ç","ö","Ä?","ÅŸ","Ç","Ä°","ÄŸ","Åž","Ö","Ãœ","ü","ÄŸ"); 
    var turkish = new Array("ı","ş","ü","ç","ö","ğ","ş","Ç","i","ğ","Ş","Ö","Ü","ı", "ş", "ç", "ö", "ğ", "ş", "Ç", "i", "ğ", "Ş", "Ö", "Ü", "ü", "ğ"); 

    for (var i = 0; i < text.length; i++) 
    { 
    for(var j = 0; j < 27;j++) 
     { 
      if(text.charAt(i) == normal[j]) 
      { 
       text.charAt(i) = turkish[j];  
      } 

     } 
    } 


    return text; 
} 

感謝

+0

你的聊天應用程序可能沒有正確的編碼定義。你根本不應該這樣做。在這裏檢查你應該添加的''標籤:http://stackoverflow.com/questions/6889001/turkish-characters-problem – Blender

+0

不要試圖替換一些字符,但是修復底層字符編碼問題。 – Bergi

+0

也許你是對的。因爲如果我做了「text ='ş'」,它就會正確顯示(ş)。在這裏,我試圖間接解決問題。 – user893970

回答

0

FIDDLE

檢查出來..

function FindAndReplaceAll(text) 
    { 
    var normal = new Array("ı","Å?","ü","ç","ö","Ä?","ÅŸ","Ç","Ä°","ÄŸ","Åž","Ö","Ãœ","ı","Å?","ç","ö","Ä?","ÅŸ","Ç","Ä°","ÄŸ","Åž","Ö","Ãœ","ü","ÄŸ"); 
    var turkish = new Array("ı","ş","ü","ç","ö","ğ","ş","Ç","i","ğ","Ş","Ö","Ü","ı", "ş", "ç", "ö", "ğ", "ş", "Ç", "i", "ğ", "Ş", "Ö", "Ü", "ü", "ğ"); 

    for (var i = 0; i < text.length; i+=2) 
    { 
    for(var j = 0; j < 27;j++) 
     { 
      if((text.charAt(i)+text.charAt(i+1)) == normal[j]) 
      { 

       text= text.replace((text.charAt(i)+text.charAt(i+1)), turkish[j]);  
      } 

     } 
    } 


    return text; 
} 
document.write(FindAndReplaceAll("ı Å? ö")) 
​ 
0

你可以使用這個擴展

public static string ReplaceToTurkishChar(this string input) 
{ 
     if (string.IsNullOrEmpty(input)) 
      return input; 

     input = input 
      //.Replace("&#305;", "ı").Replace("&#304;", "İ") 
      .Replace("&Uuml;", "Ü").Replace("&uuml;", "ü") 
      .Replace("&Ouml;", "Ö").Replace("&ouml;", "ö") 
      //.Replace("&#286;", "Ğ").Replace("&#287;", "ğ") 
      //.Replace("&#350;", "Ş").Replace("&#351;", "ş") 
      .Replace("&Ccedil;", "Ç").Replace("&ccedil;", "ç"); 


     input = input 
      .Replace("&#305;", "ı").Replace("&#304;", "İ") 
      .Replace("&#220;", "Ü").Replace("&#252;", "ü") 
      .Replace("&#214;", "Ö").Replace("&#246;", "ö") 
      .Replace("&#286;", "Ğ").Replace("&#287;", "ğ") 
      .Replace("&#350;", "Ş").Replace("&#351;", "ş") 
      .Replace("&#199;", "Ç").Replace("&#231;", "ç"); 


     input = input 
      .Replace("ı", "ı").Replace("Ä°", "İ") 
      .Replace("ü", "ü").Replace("Ãœ", "Ü") 
      .Replace("Ö", "Ö").Replace("ö", "ö") 
      .Replace("ÄŸ", "ğ").Replace("Ä?", "Ğ") 
      .Replace("ÅŸ", "ş").Replace("Åž", "Ş") 
      .Replace("Ç", "Ç").Replace("ç", "ç"); 



     input = input 
      .Replace("\u0131", "ı").Replace("\u0130", "İ") 
      .Replace("\u00FC", "ü").Replace("\u00DC", "Ü") 
      .Replace("\u00F6", "ö").Replace("\u00D6", "Ö") 
      .Replace("\u011F", "ğ").Replace("\u011E", "Ğ") 
      .Replace("\u015F", "ş").Replace("\u015E", "Ş") 
      .Replace("\u00E7", "ç").Replace("\u00C7", "Ç"); 

     return input; 
}