Problem with encoding
Denis S. Otkidach
ods at fep.ru
Wed Aug 21 06:57:22 EDT 2002
On 21 Aug 2002, Bach wrote:
B> There are a problem when I write program in Python2.2 (I try
B> modify
B> jabber.py for that):
B>
B> 1)create a socket: self._sock=socket.socket(...)
B> 2)Initialaze :data_in = u''
B> 3)Get data: data_in = data_in +
B> unicode(self._sock.recv(BLOCK_SIZE))
B>
B> I want to get the data from socket (data send by another
B> "correct"
B> program with encode UTF-8 ) and convert to Unicode.When I
B> try to
Probably you should use "unicode(self._sock.recv(BLOCK_SIZE),
'utf-8')" or even "unicode(self._sock.recv(BLOCK_SIZE),
'utf-8', 'replace')" to ignore errors for corrupted data.
B> get Russian letters make an error: UnicodeError: ASCII
B> encoding
B> error: ordinal not in range(128).
The default encoding assumed by unicode() is 7 bit ASCII.
B>
B> My program :Create a jabber-client which could send and
B> receive data
B> in UTF-8 encode.
B>
B> Idea:1)Send data :Convert data to unicode --> Encode in UTF-8
B> --> Send
B> u_data=unicode(data)
B> ;_sock.send(u_data.encode)
B> 2)Receive: Get data -->convert to unicode
B> g_data=unicode(_sock.recv(SIZE))
--
Denis S. Otkidach
http://www.python.ru/ [ru]
http://diveinto.python.ru/ [ru]
More information about the Python-list
mailing list