Original von talla
Jetzt weiß ich erst was du willst.
Fertig fällt mir da nichts ein, aber caste doch einfach Zeichen für Zeichen in nen Integer und bau dir daraus dann dein &#...; zusammen. Das ... ist ja nichts anderes als der numerische Wert des Charakters. Wobei ich immer noch net weiß wozu du es brauchst. Du hast ja ne Win32 Anwendung erwähnt, ich geh also von unmanaged Code einfach mal aus. Dann ist die Chance das der mit Unicode überhaupt nichts anfangen kann gar net mal so gering, besonders wenn die älter ist und aus dem englischsprachigen Raum kommt, wo man so gut wie keine Sonderzeichen brauch. Und wenn du ne Anwendung hast, die nur mit ASCII umgehen kann, dann kannst du soviel mit Zeichensätzen und Encodings rumhantieren wie du willst. Sie wird dich nicht verstehen 😉
Ja genau das war das Problem. Ich habe es jetzt einfach so gemacht:
private static string ConvertToASCII(string Input)
{
string Result = Input;
// Zeichen über 127 wandeln
for (int i = 128; i < 256; i++)
Result = Result.Replace(((char)i).ToString(), "&#" + i.ToString() + ";");
return Result;
}
Diese Version geht schneller, weil ich "nur" 128 Durchläufe haben, denn die zu konvertierenden Strings sind definitiv länger. 😉
Nicht am String "Result" stören lassen. Das ist nur ein Zeichen, daß ich jahrelang Delphi gemacht habe und wilde "return"'s vermeide. 🙂