Browse Source

Try to encode with UTF-8 if ISO-8859-1 fails.

Douglas William Thrift 12 years ago
parent
commit
6d067ddcf3
1 changed files with 7 additions and 1 deletions
  1. 7 1
      locationbot.py

+ 7 - 1
locationbot.py

@@ -215,7 +215,7 @@ class LocationBot(ircbot.SingleServerIRCBot):
 
 	def __heading(self, heading):
 		if heading is not None:
-			return (u'%.1f\xb0 (%s)' % (heading, _heading_to_direction(heading))).encode('latin1')
+			return _encode(u'%.1f\xb0 (%s)' % (heading, _heading_to_direction(heading)))
 
 	def __help(self, connection, nick, admin, login, arguments):
 		command = irclib.irc_lower(arguments.split(None, 1)[0].lstrip('!')) if arguments else None
@@ -952,6 +952,12 @@ class _AddressMask(object):
 
 irclib.mask_matches = _AddressMask(reload(irclib).mask_matches)
 
+def _encode(string):
+	try:
+		return string.encode('latin1')
+	except UnicodeEncodeError:
+		return string.encode('utf8')
+
 def _meters_per_second_to_miles_per_hour(meters_per_second):
 	return meters_per_second * 2.23693629