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

String to byte array and back?

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

[ Pregleda: 429 | Odgovora: 4 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

janis
YU

Član broj: 4427
Poruke: 57
82.117.201.*



Profil

icon String to byte array and back?17.06.2008. u 15:01

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 ...
17.06.2008. u 15:01 

sidec

Član broj: 184918
Poruke: 12
82.117.196.*



Profil

icon Re: String to byte array and back?17.06.2008. u 16:23
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.
17.06.2008. u 16:23 

DarkMan
Darko Matesic

Član broj: 20445
Poruke: 495
79.101.144.*



Profil

icon Re: String to byte array and back?18.06.2008. u 12:09
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.
18.06.2008. u 12:09 

mmix
Miljan Mitrovic
Software Architect
Pancevo, Srbija

SuperModerator
Član broj: 17944
Poruke: 1967
*.29.eunet.yu.

Sajt: blog.mitrovic.rs


Profil

icon Re: String to byte array and back?18.06.2008. u 13:25
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.
▪ "Why isn't my wireless mouse connected to the computer?" - 2008 Dumbest Technical Support Question
▪ The word 'politics' is derived from the word 'poly', meaning 'many', and the word 'ticks', meaning 'blood sucking parasites' - Hardiman
▪ If the good guy gets the girl, it's rated PG; if the bad guy gets the girl, it's rated R; and if everybody gets the girl, it's rated X



18.06.2008. u 13:25 

janis
YU

Član broj: 4427
Poruke: 57
82.117.201.*



Profil

icon Re: String to byte array and back?19.06.2008. u 14:31
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.
19.06.2008. u 14:31 

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

[ Pregleda: 429 | Odgovora: 4 ]

Postavi temu Odgovori

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