Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

String to byte array and back?

[es] :: .NET :: String to byte array and back?

[ Pregleda: 2253 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

janis
YU

Član broj: 4427
Poruke: 67
82.117.201.*



Profil

icon String to byte array and back?17.06.2008. u 15:01 - pre 192 meseci

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 ...
 
Odgovor na temu

sidec

Član broj: 184918
Poruke: 12
82.117.196.*



Profil

icon Re: String to byte array and back?17.06.2008. u 16:23 - pre 192 meseci
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.
 
Odgovor na temu

DarkMan
Darko Matesic

Član broj: 20445
Poruke: 572
79.101.144.*

Jabber: DarkMan


Profil

icon Re: String to byte array and back?18.06.2008. u 12:09 - pre 192 meseci
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.
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: String to byte array and back?18.06.2008. u 13:25 - pre 192 meseci
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.
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ć
 
Odgovor na temu

janis
YU

Član broj: 4427
Poruke: 67
82.117.201.*



Profil

icon Re: String to byte array and back?19.06.2008. u 14:31 - pre 192 meseci
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.
 
Odgovor na temu

[es] :: .NET :: String to byte array and back?

[ Pregleda: 2253 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.