Pour avoir un unicode dans plein de cas.
This commit is contained in:
parent
b5a93a9cf0
commit
56dc6e668c
1 changed files with 18 additions and 0 deletions
18
cranslib/cransstrings.py
Normal file
18
cranslib/cransstrings.py
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- encoding: utf-8 -*-
|
||||||
|
|
||||||
|
def decode_dammit(s):
|
||||||
|
"""Renvoie un unicode. Que ``s`` soit un unicode, un str en UTF-8 ou un str en ISO-8859-1.
|
||||||
|
Dans les autres cas, plante en affichant la chaîne incriminée."""
|
||||||
|
if not isinstance(s, basestring):
|
||||||
|
raise ValueError("Appeler avec str ou unicode.")
|
||||||
|
if isinstance(s, unicode):
|
||||||
|
return s
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
return s.decode("utf-8")
|
||||||
|
except UnicodeDecodeError as error:
|
||||||
|
try:
|
||||||
|
return s.decode("iso-8859-1")
|
||||||
|
except UnicodeDecodeError as error2:
|
||||||
|
raise UnicodeDecodeError("%s: %r" % (error2, v))
|
Loading…
Add table
Add a link
Reference in a new issue