Mi lehet a hiba a c# kódomban?
string betuk = textBox1.Text;
string betukn = betuk.Normalize(NormalizationForm.FormD); ;
if (e.KeyChar == (char)Keys.Enter)
{
textBox2.Text = betukn;
}
Azt szeretném elérni hogy az ékezetes betűket amiket beírok kicserélje ékezet nélküli formájára. Csak nem igazán akarja. Valaki ötlet?
Ok, csak hogy a Normalize egyáltalán nem ezt csinálja:
Normalize(NormalizationForm)
Returns a new string whose textual value is the same as this string, but whose binary representation is in the specified Unicode normalization form.
Hát akkor te vagy az első a világon aki ilyet akar csinálni... várjunk csak, lenyúlom az ötleted és meggazdagszom belőle...
Itt a kód, de most szabadalmaztattam, úgyhogy nem használhatod (és senki más sem):
static string RemoveDiacritics(string text)
{
var normalizedString = text.Normalize(NormalizationForm.FormD);
var stringBuilder = new StringBuilder();
foreach (var c in normalizedString)
{
var unicodeCategory = CharUnicodeInfo.GetUnicodeCategory(c);
if (unicodeCategory != UnicodeCategory.NonSpacingMark)
{
stringBuilder.Append(c);
}
}
return stringBuilder.ToString().Normalize(NormalizationForm.FormC);
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!