Как я могу хранить смайлики из TextMesh pro в базе данных, используя класс WWW, чтобы опубликовать строку, содержащую смайлики, в качестве параметра в URL?
У меня проблема с переносом эмодзи из текстового поля TextMesh Pro в мою базу данных. Когда я пытаюсь, данные смайликов сохраняются в виде обычного текста, например: ŸŸ˜ ‚или как этот или как этот □ в зависимости от того, какую кодировку я пробую.
У меня есть php-скрипт, который использует оператор sql для хранения текста в моей базе данных mysql. И когда я вручную набираю URL скрипта php в своем браузере и добавляю emoji в качестве параметра , он прекрасно работает , он правильно хранит emoji (так как я уже установил параметры сортировки в моей базе данных utf8mb4 ).
Вот часть, которую я не понимаю: если я возьму строку, содержащую эмодзи, через мой код на c # и получу доступ к файлу php со строкой в качестве параметра, это не сработает. Он хранит смайлики как mojibake . (‚Ÿ‚ эта последовательность символов должна быть такой: ?).
В противном случае он прекрасно сохраняет текст, поэтому с кодом ниже проблем нет.
Вот как это выглядит:
public IEnumerator UpdateChatCR(string gameID, string text)
{
string hash = Md5Sum(gameID + secretKey);
print("posting to chat db: " + text);
string post_url = updateChatURL + "&game_id=" + gameID + "&text=" + text + "&hash=" + hash;
WWW www = new WWW("http://" + post_url);
yield return www;
if (www.error != null)
{
print("There was an error updating the chat in the DB: " + www.error);
}
else
{
//print(www.text);
}
}
Я пробовал разные способы кодирования текста, но, честно говоря, я понятия не имею, что я делаю в данный момент. Я пробовал разные варианты следующего кода, но безуспешно:
byte[] bytes = Encoding.UTF8.GetBytes(tmpField.text);
string encodedText = Encoding.Default.GetString(bytes);
Я искал ответ в течение последних нескольких дней. И я дошел до того, что понял, что мне, вероятно, придется читать книгу о кодировании и смайликах, если только не найдется кто-то, кто сможет мне помочь ...
Спасибо за ваше время.