Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 4 odgovora
  • 3.037 pregleda

Najnovija ↓

String to byte array and back? 17.06.2008. u 16:01 · pre 223 meseca #1

Imam problem koji izgleda dosta jednostavan ali ...

Iz baze citam neke podatke(u bazi su tipa nvarchar) i recimo dobijem 'Din 255.00'. Hocu da taj string prebazim u byte array i posle opet vratim u string. To je sve okay, medjutim nikako ne mogu ponovo iz byte array-a da dobijem originalni string, uvek dobijem nesto '??? 255.00'. Probao sam sa razlicitim encoding-zima.

e.g.
string str = "Din 255.00";
byte[] arr = Encoding.UTF8.GetBytes(str);
Console.WriteLine(System.Text.UTF8Encoding.UTF8.GetString(arr));
Console.ReadLine(); // vraca ??? 255.00

string str = "Din 255.00";
byte[] arr = Encoding.Unicode.GetBytes(str);
Console.WriteLine(System.Text.UnicodeEncoding.Unicode.GetString(arr));
Console.ReadLine(); // takodje vraca ??? 255.00

Samo da napomenem ne mora string uvek da bude 'Din 255.00', moze da bude '€' ili oznaka za funtu ...
Re: String to byte array and back? 17.06.2008. u 17:23 · pre 223 meseca #2
UUU brate, ako ti imash kolonu u bazi koja chuva i valutu i vrijednost, to znachi da si skrenuo desno kod Albukerkija kad si projektovao bazu.
Pogledaj malo po netu neki tutorijal za projektivanje baze i prochitaj malo o normalnim formama.

Trebao bi da imash code tabelu koja ce da sadrzi valute a u glavnoj tabeli da chuvash samo vrijednost(tipa float) i id valute iz code tabele kao FK.

a shto se tiche konkretnog problema mozesh ovako da postupish:

Code:

string str = "Din 255.00";
        string rezultat = "";
        byte[] b = new byte[str.Length];
        // idemo u bajte
        for (int i = 0; i < str.Length; i++)
        {
            b[i] = (byte)str[i];
        }

        //vracamo se u string
        for (int i = 0; i < b.Length; i++)
        {
            rezultat += ((char)b[i]).ToString();
        }
Console.WriteLine(rezultat);
Console.ReadLine();


P.S. samo mi reci zashto uopshte zelish da prebacujesh string u niz bajta, poshto shta god da si sa tim naumio, chini mi se da ima bolje i lakshe reshenje...

poz.
Re: String to byte array and back? 18.06.2008. u 13:09 · pre 223 meseca #3
Citat:
janis: 
string str = "Din 255.00";
byte[] arr = Encoding.UTF8.GetBytes(str);
Console.WriteLine(System.Text.UTF8Encoding.UTF8.GetString(arr));
Console.ReadLine();

Ovo kod mene radi OK, lepo ispisuje "Din 255.00".

Citat:

string str = "Din 255.00";
byte[] arr = Encoding.Unicode.GetBytes(str);
Console.WriteLine(System.Text.UnicodeEncoding.Unicode.GetString(arr));
Console.ReadLine();

I ovo kod mene radi OK.

E sad ako stavim € ispisace ? umesto €, ali to je vec ogranicenje konzole, ne moze da ispise unikod karaktere. MessageBox lepo prikaze € znak.
Re: String to byte array and back? 18.06.2008. u 14:25 · pre 223 meseca #4
Verovatno je i to Din u stvari cirilicno (ES konvertuje cirilicu u latinicu pri postovanju pa se nije videlo) pa u stvari ne moze konzola da prikaze Din cirilicno iz istih razloga sto ne moze €. Janis, probaj da izlaz iz GetString(byte[]) da prikazes u MessageBoxu kao DarkMan, vidi dal ce da radi kako treba.
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: String to byte array and back? 19.06.2008. u 15:31 · pre 223 meseca #5
Citat:
sidec said
UUU brate, ako ti imash kolonu u bazi koja chuva i valutu i vrijednost, to znachi da si skrenuo desno kod Albukerkija kad si projektovao bazu.
Pogledaj malo po netu neki tutorijal za projektivanje baze i prochitaj malo o normalnim formama.


Nije uposte u pitanju money kolona, rec je o polju koji sadrzi html code a din(cirilicom) 255.00 je samo deo tok html koda.

Inace DarkMan i mmix su upravu, sve to radi lepo samo console-a to ne moze da ispise kako treba.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme