Sembolleri C# içindeki dizelerden nasıl değiştirebiliriz? BuC# içindeki semboller arasındaki sembolleri değiştirin. #
Giriş gibi
: "�Click me."
Çıktı: "Click me."
;
Sembolleri C# içindeki dizelerden nasıl değiştirebiliriz? BuC# içindeki semboller arasındaki sembolleri değiştirin. #
Giriş gibi
: "�Click me."
Çıktı: "Click me."
;
Tüm ASCII olmayan karakterleri dizinizden çıkarmak basit bir çözüm olacaktır. - ille olmayabilir burada bir regex kullanarak
olarak sözü rağmenstring s = "�Click me.";
s = Regex.Replace(s, @"[^\u0000-\u007F]", "");
, bu bir kodlama/kod sayfası sorun olabilir: this question bu mevcut yapmak birkaç yolu, muhtemelen olurdu en basit olan vardır uygun çözüm.
DÜZENLEME: yorumlarınıza dayanarak, burada bir kaç diğer desenler deneyebileceğiniz şunlardır:
s = Regex.Replace(s, @"[^\u0020-\u007F]", "");
alfasayısal hariç her şeyi kaldırın:
tüm ASCII olmayan karakterler ve ASCII kontrol karakterleri kaldırın ASCII karakterleri:
s = Regex.Replace(s, @"[^A-Za-z0-9]", "");
ascii olmayan karakterleri değiştirdikten sonra xml yazmaya çalıştığımda hala bu hatayı alıyorum "hexadecimal değeri 0x05 geçersiz karakter" – Novice
@Novice '0x05' bir ASCII denetim karakteridir. Bunları da kaldırmak isterseniz, cevabımda yazılanlar yerine bunu kullanabilirsiniz: 's = Regex.Replace (s, @" [^ \ u0020- \ u007F] "," ");'. Girişinizi nereden alıyorsunuz? – Donut
Mysql veritabanından girdi alıyorum. Tablodaki karakter karakter kümesi "utf_8" – Novice
var output = input.Replace("�","");
Simples!
Evet, ama ' ' ekranda gördüğünüz şey, gerçek değer muhtemelen başka bir şeydir, bu yüzden bu değiştirme muhtemelen çok fazla yapmaz. –
Tamamen, doğrudan soruyu cevapladım - "C# dizisindeki sembollerin yerini nasıl değiştirebiliriz" – Jamiec
@Darin Dimitrov: Bu kesinlikle düşünceyi kaldıracaktır? – Kurru
:
source = Regex.Replace(source , @"\p{name}", "");
Adların bir listesi this article. içinde bulunabilir. Karakterinizin engellenmesini engelleyeceğinden emin değilim.
İlk etapta nasıl bu sembolleri aldınız? Kırık kodlama yapmış gibi gözüküyor. Değiştirmek bir çözüm değil. Sorunu kökleri ile karıştırın: Bu dizgiyi alma şeklinizi düzeltin ve ölü bir şeyi yeniden diriltmeye çalışmayın. –
Bir [kodlama/kod sayfası sorunu] gibi görünüyor (http://www.joelonsoftware.com/articles/Unicode.html). –
Sadece alfanümerik ve noktalama işaretleri değil, her şeyi kaldırmaya mı çalışıyorsunuz? –