de-vraag
  • Pytania
  • Tagi
  • Użytkownicy
Powiadomienia
Nagrody
Rejestracja
Po zarejestrowaniu się, będziesz otrzymywać powiadomienia o odpowiedziach i komentarzach do swoich pytań.
Zaloguj się
Brak tłumaczeń pasujących do Twojego wyszukiwania Jeśli masz już konto, zaloguj się, aby sprawdzić nowe powiadomienia.
Za dodane pytania, odpowiedzi i komentarze przewidziane są nagrody.
Więcej
Źródło
Edytuj
Agnel Kurian
Agnel Kurian
Question

Jak mogę uzyskać spójną bajtową reprezentację łańcuchów w C# bez ręcznego określania kodowania?

Jak przekonwertować string na byte[] w .NET (C#) bez ręcznego określania konkretnego kodowania?

Mam zamiar zaszyfrować ten ciąg znaków. Mogę go zaszyfrować bez konwersji, ale nadal chciałbym wiedzieć, dlaczego kodowanie wchodzi tutaj w grę.

Również, dlaczego kodowanie powinno być brane pod uwagę? Czy nie mogę po prostu uzyskać, w jakich bajtach został zapisany łańcuch? Dlaczego istnieje zależność od kodowania znaków?

2111 2009-01-23T13:39:54+00:00 3
 Dragonthoughts
Dragonthoughts
Edytowane pytanie 1. października 2018 в 12:36
Programowanie
character-encoding
.net
c#
string
Popular videos
ASCII Code and Binary
ASCII Code and Binary
2 lata temu
How to convert strings to numbers in C
How to convert strings to numbers in C
2 lata temu
Strings in C Programming | Part-1 | C Language Tutorial
Strings in C Programming | Part-1 | C Language Tutorial
5 lat temu
« Poprzedni
Następny »
To pytanie ma 1 odpowiedź w języku angielskim, aby je przeczytać zaloguj się na swoje konto.
 bmotmans
bmotmans
23. stycznia 2009 в 1:43
2009-01-23T13:43:51+00:00
Więcej
Źródło
Edytuj
#8768404

Zależy to od kodowania twojego łańcucha (ASCII, UTF-8, ...).

Na przykład:

byte[] b1 = System.Text.Encoding.UTF8.GetBytes (myString);
byte[] b2 = System.Text.Encoding.ASCII.GetBytes (myString);

Mała próbka dlaczego kodowanie ma znaczenie:

string pi = "\u03a0";
byte[] ascii = System.Text.Encoding.ASCII.GetBytes (pi);
byte[] utf8 = System.Text.Encoding.UTF8.GetBytes (pi);

Console.WriteLine (ascii.Length); //Will print 1
Console.WriteLine (utf8.Length); //Will print 2
Console.WriteLine (System.Text.Encoding.ASCII.GetString (ascii)); //Will print '?'

ASCII po prostu nie jest'wyposa&#380one do radzenia sobie ze znakami specjalnymi.

Wewnętrznie, framework .NET używa UTF-16 do reprezentowania łańcuchów, więc jeśli chcesz po prostu uzyskać dokładne bajty, których używa .NET, użyj System.Text.Encoding.Unicode.GetBytes (...).

Zobacz Character Encoding in the .NET Framework (MSDN), aby uzyskać więcej informacji.

Peter Mortensen
Peter Mortensen
Edytowana odpowiedź 24. kwietnia 2015 в 9:52
ASCII - Wikipedia
en.wikipedia.org
UTF-8 - Wikipedia
en.wikipedia.org
UTF-16 - Wikipedia
en.wikipedia.org
1093
0
 gkrogers
gkrogers
23. stycznia 2009 в 1:43
2009-01-23T13:43:18+00:00
Więcej
Źródło
Edytuj
#8768403
byte[] strToByteArray(string str)
{
    System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
    return enc.GetBytes(str);
}
17
0
 cyberbobcat
cyberbobcat
23. stycznia 2009 в 1:43
2009-01-23T13:43:58+00:00
Więcej
Źródło
Edytuj
#8768405
// C# to convert a string to a byte array.
public static byte[] StrToByteArray(string str)
{
    System.Text.ASCIIEncoding  encoding=new System.Text.ASCIIEncoding();
    return encoding.GetBytes(str);
}

// C# to convert a byte array to a string.
byte [] dBytes = ...
string str;
System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
str = enc.GetString(dBytes);
-1
0
Dodaj pytanie
Kategorie
Wszystkie
Technologia
Kultura / Rekreacja
Życie / Sztuka
Nauka
Profesjonalny
Biznes
Użytkownicy
Wszystkie
Nowy
Popularny
1
Zuxriddin Muydinov
Zarejestrowany 11 godzin temu
2
Денис Анненский
Zarejestrowany 2 dni temu
3
365
Zarejestrowany 1 tydzień temu
4
True Image
Zarejestrowany 1 tydzień temu
5
archana agarwal
Zarejestrowany 1 tydzień temu
BG
DA
DE
EL
ES
FI
FR
ID
IT
JA
NL
PL
PT
SK
TR
ZH
© de-vraag 2022
Źródło
stackoverflow.com
na podstawie licencji cc by-sa 3.0 z przypisaniem