Как использовать кодировку UTF8 в Visual C ++ - PullRequest
3 голосов
/ 09 мая 2011

Мне нужно изменить приведенный ниже код c # на код c ++.

    public static byte[] StrToByteArray(string str)
    {
        System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
        return encoding.GetBytes(str);
    }

на этом сайте Я нашел код C ++ для UTF8Encoding, из которого я создал этот код

    void StrToByteArray(string unicodeString)
    {
        UTF8Encoding^ utf8 = gcnew UTF8Encoding;
        array<Byte>^encodedBytes = utf8->GetBytes( unicodeString );
    }

но это дает мне следующую ошибку

Ошибка 2 ошибка C2664: 'cli :: array ^ System :: Text :: Encoding :: GetBytes (cli :: array ^)': невозможно преобразовать параметр 1 из 'std :: string' в 'cli :: array

Почему он это делает, если он идентичен документации?(за исключением того, что я использую обычную строку, но использование строки верхнего уровня ^ дает мне ошибку в этом.)

Я не уверен, связано ли это, но мой код управляется.

примечание: я пытался не беспокоиться о возвращении каких-либо данных, пока я не заработаю.

1 Ответ

5 голосов
/ 09 мая 2011

string - это другой тип данных в C ++, как и в C #.Попробуйте использовать System::String^ вместо.

...