SORU
23 EKİM 2009, Cuma


Dönüştürme kaçtı ascıı dize dizeleri Unicode

Bunu nasıl dize dönüştürme:

This string contains the unicode character Pi(π)

bir kaçak ascıı dize: içine

This string contains the unicode character Pi(\u03a0)

vetam tersi?

Geçerli Kodlama C# dönüştürür π karakterin içine mevcut "?". Bu karakteri korumak için ihtiyacım var.

CEVAP
23 EKİM 2009, Cuma


Bu ileri geri ve \uXXXX biçimini gidiyor.

class Program {
    static void Main( string[] args ) {
        string unicodeString = "This function contains a unicode character pi (\u03a0)";

        Console.WriteLine( unicodeString );

        string encoded = EncodeNonAsciiCharacters(unicodeString);
        Console.WriteLine( encoded );

        string decoded = DecodeEncodedNonAsciiCharacters( encoded );
        Console.WriteLine( decoded );
    }

    static string EncodeNonAsciiCharacters( string value ) {
        StringBuilder sb = new StringBuilder();
        foreach( char c in value ) {
            if( c > 127 ) {
                // This character is too big for ASCII
                string encodedValue = "\\u"   ((int) c).ToString( "x4" );
                sb.Append( encodedValue );
            }
            else {
                sb.Append( c );
            }
        }
        return sb.ToString();
    }

    static string DecodeEncodedNonAsciiCharacters( string value ) {
        return Regex.Replace(
            value,
            @"\\u(?<Value>[a-zA-Z0-9]{4})",
            m => {
                return ((char) int.Parse( m.Groups["Value"].Value, NumberStyles.HexNumber )).ToString();
            } );
    }
}

Çıkışlar:

Bu işlevi unicode karakter pi (π) içerir

Bu işlevi unicode karakter pi (\u03a0) içerir

Bu işlevi unicode karakter pi (π) içerir

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Elliot Davin

    Elliot Davin

    28 Kasım 2008
  • kev5124

    kev5124

    9 Kasım 2008
  • pilslajt

    pilslajt

    20 HAZİRAN 2008