System.Text.Encoding.GetBytes() win7 / win10

System.Text.Encoding.GetBytes() win7 / win10
2018-10-26T23:35:05+02:00
2018-10-27T09:07:59+02:00
2022-10-15T21:30:19+02:00
cocoya3
Sziasztok!

Alant kicsi konzolos program egészben:

namespace program { public static class program { static void Main(string[] args) { System.Byte[] my_crudepath; System.String my_crudepath_str; System.Text.Encoding my_encoding; my_encoding= System.Text.Encoding.UTF8; my_crudepath_str= System.IO.Path.GetDirectoryName( System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase); System.Console.WriteLine("Length 1: "+my_crudepath_str.Length.ToString()); my_crudepath= my_encoding.GetBytes(my_crudepath_str); System.Console.WriteLine("Length 2: "+my_crudepath.Length.ToString()); System.Console.WriteLine("Enter"); System.Console.ReadLine(); return;} } }
A program kiír két számot, ami win7 alatt azonos, win10 alatt a második szám 2-vel nagyobb (ahol futtattam, azt tapasztaltam 52/54). Valami olvasnivaló lenne jó, miről is van szó. Mindkét OS-re kompatibilis megoldásra lenne szükségem.
Mutasd a teljes hozzászólást!
A String.Length a karakterek számát adja vissza kódolástól függetlenül (aábcd) = 5, (aabcd) = 5;
Ha ezt byte[]-á alakítod akkor már nincs szó kódolásról. UTF-8-ban az ékezetes karakterek két bájtot foglalnak (aa?bcd) = 6, (aabcd) = 5;
A különbség abból adódik a két Windows között hogy valószínűleg a string tartalma más. Teszteld fix szöveggel és meglátod hogy azonos lesz a működés mind két windowson. Kérdés miért van szükséged a két különböző hosszúságra
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd