python - 如何在 python 中将原始 unicode 转换为 utf8-unicode?
问题描述
第一次来这里,我会尽力解释我的问题。
我在 Maya 中使用 python2.7。我得到了一个使用 Maya 的 API 导入的字符串(称为属性)“attr”,如下所示:
print(attr)
print(type(attr))
>> Générique
>> <type 'unicode'>
在继续我的工作之前,我需要将其转换为 utf-8 可读格式。基本上我需要能够做到这一点:
print(attr)
print(type(attr))
>>Générique
>><type 'unicode'>
我已经尝试了 attr.encode / attr.decode 的多种组合,但我无法真正掌握我应该做什么。最困扰我的是,当我尝试在代码中手动键入变量时,您实际上可以得到:
attr = 'Générique'
print(type(attr))
attr = attr.decode('utf-8')
print(attr)
print(type(attr))
>><type 'str'>
>>Générique
>><type 'unicode'>
所以我知道我最初应该将 'attr' 转换为 str 类型,但我不能在不丢失信息的情况下做到这一点。
有任何想法吗 ?请 ?
编辑:由snakecharmerb(和ftfy)解决。非常感谢。这篇文章下的两种解决方案。
解决方案
解决了 :
我发现了 FTFY 模块。使 pip 与 Maya 一起工作有点麻烦,但一切都很好并且完成了。对于有相同问题的任何人:让 pip 与 Maya 一起工作: https ://forums.autodesk.com/t5/maya-programming/can-i-use-pip-in-maya-script-editor/td-p/7638107 (你需要运行 admin cmd 否则它不会安装)
抓取ftfy(5以下版本兼容python2.7):pip install ftfy==4.4.3
我的不干净代码如下所示:
from __future__ import unicode_literals
import pymel.core as pm
import maya.cmds as cmds
import maya.utils
import unicodedata
import StringIO
import codecs
import sys
import re
from ftfy import fix_text
attr = cmds.getAttr(*objectName*)
attr = fix_text(attr)
print(attr)
推荐阅读
- javascript - 如何使用selectize js在clear()之后在输入标签中设置值
- python - 使用 pymysql 调用 mysql 过程
- laravel-8 - 使用 withErrors([])
- powerbi - 具有多列的查找值
- javascript - 请帮我把工具提示放在svg上
- database - DynamoDB 大小增加 - 延迟
- python - 为什么 Python: 3.8 将 Decimal 1120.50 向下舍入而不是向上舍入?
- asp.net-core - Windows 身份验证失败并显示“401 Unauthorized”
- javascript - 如何在Javascript中将自定义对象作为错误抛出
- r - 具有标准正态分布的随机变量落入特定区间