Что я делаю не так с CharArrayToString

 

Пробовал всяко разно, но в итоге всё равно кракозябры.

   uchar _result[] = {144, 129, 251, 45, 159, 164, 93, 15, 109, 15, 72, 110, 220, 195, 49, 106};

   string str = "";
   str = CharArrayToString(_result);
   Print(str);

   str = "";
   str = CharArrayToString(_result, 0, -1, 0);
   Print(str);

   str = "";
   str = CharArrayToString(_result, 0, -1, 1);
   Print(str);

   str = "";
   str = CharArrayToString(_result, 0, -1, 3);
   Print(str);

   str = "";
   str = CharArrayToString(_result, 0, -1, 65001);
   Print(str);

   str = "";
   int size = ArraySize(_result);
   for(int i = 0; i < size; i++)
      str += (string)_result[i];
   Print(str);


Что я делаю не так?


CharToString()  тоже выдаёт кракозябры.

 
Aleksandr Slavskii:

Пробовал всяко разно, но в итоге всё равно кракозябры.


Что я делаю не так?


CharToString()  тоже выдаёт кракозябры.

попробуйте так

uchar _result[] = {72, 101, 108, 108, 111};
https://unicode-table.com/ru/#basic-latin
Таблица символов Юникода
  • unicode-table.com
Сервис поиска символов Юникода (Unicode). Находите, копируйте и вставляйте любимые символы: 😎 Эмоджи, ❤ сердечки, 💲 валюты, → стрелки, ★ звёздочки, и многое другое 🚩
 

попробуйте от обратного пойти - сначала StringToCharArray() + Print 

затем обратно CharArrayToString() + Print

 
Igor Makanu:

попробуйте от обратного пойти - сначала StringToCharArray() + Print 

затем обратно CharArrayToString() + Print

не совсем понял смысл пробовать туда-обратно.

мне надо перевести в строку хэш 

CryptEncode(CRYPT_HASH_MD5, parameters_uchar, key, _result);
Так вот этот _result,  никак не хочет становится строкой с помощью CharArrayToString().
 
Aleksandr Slavskii:

не совсем понял смысл пробовать туда-обратно.

мне надо перевести в строку хэш 

Так вот этот _result,  никак не хочет становится строкой с помощью CharArrayToString().

так с этого и нужно начинать - с кода кодирования-декодирования.

 
Taras Slobodyanik:

попробуйте так

https://unicode-table.com/ru/#basic-latin

Хорошо, я понял, спасибо.


 
Igor Makanu:

попробуйте от обратного пойти - сначала StringToCharArray() + Print 

затем обратно CharArrayToString() + Print

Извиняюсь за то, что задал не полный вопрос.

И да, смысл зачем туда - сюда, теперь понятен. 

Спасибо. 

 
StringToCharArray дописывает в конце 0.
Причина обращения: