我正在使用Python2.7
我有一个像这样的unicode字符串:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class menuScript : MonoBehaviour {
public Canvas quitMenu;
public Button startText;
public Button exitText;
// Use this for initialization
void Start () {
quitMenu=quitMenu.GetComponent<Canvas>();
startText=startText.GetComponent<Button>();
exitText=exitText.GetComponent<Button>();
quitMenu.enabled=false;
}
public void ExitPress()
{
quitMenu.enabled=true;
startText.enabled=false;
exitText.enabled=false;
}
public void NoPress()
{
quitMenu.enabled=false;
startText.enabled=true;
exitText.enabled=true;
}
public void StartLevel()
{
Application.LoadLevel(1);
}
public void ExitGame()
{
Application.Quit();
}
}
我想打印这个:
s = u'Rub\xc3\xa9n'
我尝试过多种方式直接打印,但没有成功:
print convert(s)
Rubén
我知道我声明字符串不是最好的形式,但其他脚本正在提供该格式。
非常感谢您的帮助。
答案 0 :(得分:1)
这是一个错误解码为latin1
的Unicode字符串或类似的编码,例如windows-1252
,但实际上是utf8
:
>>> s = 'Rub\xc3\xa9n'.decode('latin1')
>>> s
u'Rub\xc3\xa9n'
它应该被解码为:
>>> s = 'Rub\xc3\xa9n'.decode('utf8')
>>> s
u'Rub\xe9n'
>>> print s
Rubén
如果您无法控制字符串的生成方式,可以使用以下方法撤消问题:
>>> print u'Rub\xc3\xa9n'.encode('latin1').decode('utf8')
Rubén