如何从角色获取数据

Cam*_*rge 7 c# utf-8 google-translate .net-assembly unity-game-engine

我正在Unity中使用Assembly C#开发一个项目.我尝试获得特殊字符,例如é,但在控制台中它只显示一个空白字符:"".例如翻译"你好吗?" 应该返回"CómoEstás?",但它会返回"Cmo Ests".我将返回字符串"Cmo Ests"放在一个字符数组中,并意识到它是一个非空的空白字符.我正在使用Encoding.UTF8,当我这样做时:

char ch = '\u00e9';
print (ch);
Run Code Online (Sandbox Code Playgroud)

它将打印"é".我尝试使用以下方法从给定字符串中获取字节:

byte[] utf8bytes = System.Text.Encoding.UTF8.GetBytes(temp);
Run Code Online (Sandbox Code Playgroud)

在翻译"你好吗?"时,它将返回一个字节字符串,但对于特殊字符,如é,我得到一系列字节239,191,189,这是一个替换字符.

我需要从字符中检索哪些类型的信息才能准确地确定它是什么字符?我是否需要对Google提供给我的信息做些什么,或者是其他什么?我需要一个一般情况,我可以放在我的程序中,并将适用于任何输入字符串.如果有人可以提供帮助,我们将不胜感激.

这是引用的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnityEngine;
using System.Collections;
using System.Net;
using HtmlAgilityPack;


public class Dictionary{
string[] formatParams;
HtmlDocument doc;
string returnString;
char[] letters;
public char[] charString;
public Dictionary(){
    formatParams = new string[2];
    doc = new HtmlDocument();
    returnString = "";
}

public string Translate(String input, String languagePair, Encoding encoding)
    {
        formatParams[0]= input;
        formatParams[1]= languagePair;
        string url = String.Format("http://www.google.com/translate_t?hl=en&ie=UTF8&text={0}&langpair={1}", formatParams);

        string result = String.Empty;

        using (WebClient webClient = new WebClient())
        {
            webClient.Encoding = encoding;
            result = webClient.DownloadString(url);
        }       
        doc.LoadHtml(result);
        input = alter (input);
        string temp = doc.DocumentNode.SelectSingleNode("//span[@title='"+input+"']").InnerText;
        charString = temp.ToCharArray();
        return temp;
    }
// Use this for initialization
void Start () {

}
string alter(string inputString){
    returnString = "";
    letters = inputString.ToCharArray();
    for(int i=0; i<inputString.Length;i++){
        if(letters[i]=='\''){
            returnString = returnString + "&#39;";  
        }else{
            returnString = returnString + letters[i];   
        }
    }
    return returnString;
}
}
Run Code Online (Sandbox Code Playgroud)

Cod*_*ops 0

事实上你几乎已经拥有了。只需插入带有 \u 的编码字母即可。

string mystr = "C\u00f3mo Est\u00e1s?";
Run Code Online (Sandbox Code Playgroud)