Я пытаюсь преобразовать string
"Eureka"
в его UTF-8 Int64
представление.
Я пытаюсь следующий код:
string message = "Eureka"; // if I use "Eureka\0\0" it works...
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(message);
// this fails because I have 6 bytes, not 8 (as required for Int64)
Int64 m = BitConverter.ToInt64(bytes, 0);
byte[] decodeBites = BitConverter.GetBytes(m);
string decodeMessage = System.Text.Encoding.UTF8.GetString(decodeBites);
if (!decodeMessage.Equals(message)) {
Console.WriteLine("Message mis-match!!!");
}
Сейчаспотому что моя строка слишком короткая, у меня нет нужного количества байтов, и это не удается.Если я добавлю 2 символа, это будет работать, но тогда у меня не будет нужной строки в decodeMessage
... Я уверен, что мне нужен какой-то трюк преобразования, чтобы удалить завершающие байты "0" после преобразования, но ни одна из моих попытокРабота.Любая помощь будет принята с благодарностью !!
ОБНОВЛЕНИЕ Цель - ДЕЙСТВИТЕЛЬНО иметь целочисленное представление "Euraka", а не "Eureka \ 0 \ 0", а затем обрезать в конце .... Цель состоит в том, чтобы использовать RSA-метод на полученном Int64
, так что на другом конце люди не будут знать, что им нужно что-то обрезать ...!