Bir kütüphaneden rasgele "string" verildiğinde kontrolüm yok, "string" in unicode tipinde olduğundan ve utf-8'de kodlandığından emin olmak istiyorum. Ben hariç/try sar ve hataları aitlisteler gerçek kodundaBu, bir python unicode "dizesinin" utf-8'de kodlandığından emin olmanın en iyi yolu bu mu?
import types
input = <some value from a lib I dont have control over>
if isinstance(input, types.StringType):
input = input.decode("utf-8")
elif isinstance(input, types.UnicodeType):
input = input.encode("utf-8").decode("utf-8")
ama bu atladınız: Bu bunu yapmanın en iyi yolu olup olmadığını bilmek istiyorum.
Bu dizeyi, utf-8 kodlanmış unicode dizeleri gerektiren bir C++ lib olan başka bir lib dosyasına geçiriyorum. Unicode türü kodlamanın UTF-8 olduğundan emin olmak mümkün mü? – mcot
C++ kütüphanesi Python Unicode türünün dahili kodlamasıyla etkileşim gerektirir mi? Bu şüpheli ve iç kodlamayı UTF-8 olarak önemli ölçüde değiştirebileceğinizi düşünmüyorum. Öte yandan, UTF-8: my_unicode_string.encode ('utf-8') olarak kodlanmış bir Python str nesnesi alabilirsiniz. –
Harika! Cevabınızı 10 saat sonra baş ağrısından sonra buldum. –