python unicode encoding ucs2

python - El códec ''UCS-2'' no puede codificar caracteres en la posición 1050-1050



unicode encoding (2)

Cuando ejecuto mi código Python, obtengo los siguientes errores:

File "E:/python343/crawler.py", line 31, in <module> print (x1) File "E:/python343/lib/idlelib/PyShell.py", line 1347, in write return self.shell.write(s, self.tags) UnicodeEncodeError: ''UCS-2'' codec can''t encode characters in position 1050-1050: Non-BMP character not supported in Tk

Aquí está mi código:

x = g.request(''search'', {''q'' : ''TaylorSwift'', ''type'' : ''page'', ''limit'' : 100})[''data''][0][''id''] # GET ALL STATUS POST ON PARTICULAR PAGE(X=PAGE ID) for x1 in g.get_connections(x, ''feed'')[''data'']: print (x1) for x2 in x1: print (x2) if(x2[1]==''status''): x2[''message'']

¿Cómo puedo arreglar esto?


Ninguno de estos funcionó para mí, pero lo siguiente sí. Esto supone que public_tweets se extrajo de tweepy api.search

for tweet in public_tweets: print (tweet.text) u=tweet.text u=u.encode(''unicode-escape'').decode(''utf-8'')


Sus datos contienen caracteres fuera del plano multilingüe básico . Los emoji, por ejemplo, están fuera del BMP, y el sistema de ventanas utilizado por IDLE, Tk, no puede manejar dichos caracteres.

Puede usar una tabla de traducción para asignar todo lo que está fuera de BMP al carácter de reemplazo :

import sys non_bmp_map = dict.fromkeys(range(0x10000, sys.maxunicode + 1), 0xfffd) print(x.translate(non_bmp_map))

El non_bmp_map asigna todos los puntos de código fuera del BMP (cualquier punto de código superior a 0xFFFF, hasta el punto de código Unicode más alto que su versión de Python puede manejar ) al CARACTER DE REEMPLAZO U + FFFD :

>>> print(''This works outside IDLE! /U0001F44D'') This works outside IDLE! 👍 >>> print(''This works in IDLE too! /U0001F44D''.translate(non_bmp_map)) This works in IDLE too! �