Elektroda.pl
Elektroda.pl
X

Search our partners

Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[C#]Base64 i polskie znaki

Dragas 04 Jul 2012 19:37 3830 2
  • #1
    Dragas
    Level 26  
    Witam

    Natkn±łem się na pewien problem, a mianowicie przy kodowaniu base64 znikaj± polskie znaki, a w ich miejsce wchodzi '?'. Powodem stosowania takiego sposobu jest to, że na wyj¶ciu s± tylko znaki alfanumeryczne oraz +. Czy istnieje jaki¶ algorytm (dwustronny), który ma na wyj¶ciu takie same znaki i działa z polskimi znakami?

    Pozdrawiam
    Dragas

    [EDIT]

    Koduję (i dekoduję) to w taki sposób
    Code: csharp
    Log in, to see the code


    I otrzymuję w ten sposób 'qw?rtyui?p'.
  • Helpful post
    #2
    marcinj12
    Level 40  
    Rzeczywi¶cie, jest jak mówisz, ponieważ każdy znak ASCII jest kodowany na 7 bitach, co jest za mało do odtworzenia polskich znaków. Problem widać na tym przykładzie, nie trzeba było kodować do base64 żeby "zgubić ogonki":
    Code: csharp
    Log in, to see the code

    wy¶wietla:
    Przed zakodowaniem: pod98rfkod ±ółń¶ćĽżˇÓŁŃ¦¬Ż
    Po odkodowaniu: pod98rfkod ???????????????


    Rozwi±zanie: jeżeli możesz, zmień ASCII na jaki¶ "szerszy" format, UTF-8 wydaje się być naturalnym kandydatem:
    Code: csharp
    Log in, to see the code

    Wy¶wietla:
    Przed zakodowaniem: pod98rfkod ±ółń¶ćĽżˇÓŁŃ¦¬Ż
    Po odkodowaniu: pod98rfkod ±ółń¶ćĽżˇÓŁŃ¦¬Ż
  • #3
    Dragas
    Level 26  
    A ja obwiniałem kodowanie base64, a tu konwersja zawiodła :(
    Nie pozostało mi nic innego jak tylko podziękować i klikn±ć gdzie trzeba :)
    Problem rozwi±zany.

    Pozdrawiam
    Dragas