>  Q&A  >  본문

python 编码问题,求助各位大神

想请问下拿到一串unicode编码串,要怎么才能转换中文输出

我发现直接

print u'\u4ed7\u5251\u5929\u6daf'

或者

a = u"\u4ed7\u5251\u5929\u6daf"
print a

是可以输出中文

但是如果把串赋值到变量,用decode,encode转换都不行

a = '\u4ed7\u5251\u5929\u6daf'

不知道怎样print a才能输出中文了?

黄舟黄舟2713일 전451

모든 응답(4)나는 대답할 것이다

  • 黄舟

    黄舟2017-04-17 17:54:27

    Python3에서는 모든 문자열 유형이 유니코드로 변경되었습니다. 다음과 같이 사용하면 출력이 동일합니다

    으아아아

    Python2.7에서는 u를 추가하면 유니코드를 의미하고, 추가하지 않으면 문자열을 의미하므로 u를 직접 제거하고 해당 문자열을 얻으면 데이터 유형과 문자열 길이가 각각 나옵니다

    .

    회신하다
    0
  • 高洛峰

    高洛峰2017-04-17 17:54:27

    마지막 문장
    a = 'u4ed7u5251u5929u6daf'
    a는 실제로 문자열입니다.
    따라서 중국어를 인쇄하려면 a를 유니코드로 변환해야 하며,

    .decode를 인쇄할 수 있습니다. ('unicode-escape')
    참조
    http://stackoverflow.com/questions/10268518/python-string-to-unicode

    회신하다
    0
  • 黄舟

    黄舟2017-04-17 17:54:27

    마지막 문장 a = 'u4ed7u5251u5929u6daf' 왜 따옴표 앞에 u를 삭제해야 하나요?

    회신하다
    0
  • 天蓬老师

    天蓬老师2017-04-17 17:54:27

    Python 문자열 앞의 u는 문자열이 유니코드 인코딩으로 구문 분석되어야 함을 나타냅니다.
    디코드를 사용합니다. 이는 'u4ed7u5251u5929u6daf' 문자열을 유니코드 인코딩으로 변환한다는 의미입니다.

    회신하다
    0
  • 취소회신하다