Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python字符串格式字符,用于_unicode__;?_Python_String_Unicode_Syntax - Fatal编程技术网

Python字符串格式字符,用于_unicode__;?

Python字符串格式字符,用于_unicode__;?,python,string,unicode,syntax,Python,String,Unicode,Syntax,首先,有一个吗 如果不是的话,有没有一个好的方法来强制类似的事情 print '%s' % obj 要调用obj.\uuuu unicode\uuuu而不是obj.\uuu str\uuuu?只需使用unicode格式字符串,而不是在该角色中使用字节字符串: >>> class X(object): ... def __str__(self): return 'str' ... def __unicode__(self): return u'unicode' ...

首先,有一个吗

如果不是的话,有没有一个好的方法来强制类似的事情

print '%s' % obj

要调用
obj.\uuuu unicode\uuuu
而不是
obj.\uuu str\uuuu

只需使用unicode格式字符串,而不是在该角色中使用字节字符串:

>>> class X(object):
...   def __str__(self): return 'str'
...   def __unicode__(self): return u'unicode'
... 
>>> x = X()
>>> print u'%s' % x
unicode

不,这种情况没有意义

打印(u“%s”%obj)。编码(某些编码)
将使用
obj.\uuuuuu unicode\uuuu

首先,有一个吗

当然(有点)。unicode格式字符串将格式值转换为unicode,这意味着将调用
obj.\uuuuuUnicode\uuuuu

除了上面提到的,没有什么特别的原因让你不能明确表达:

print '%s' % (unicode(obj))

\uuuuuuunicode\uuuuuu>返回bytestring和打印unicode对象就是一个糟糕的例子。@Mike,同意
返回
的问题--修复了那个打字错误。关于
打印
:在一个像样的平台上,
sys.stdout.encoding
被设置好了,打印会很好地工作——当你盲目猜测要使用的
一些编码时(如果它不在sys.stdout上,你怎么猜呢,祈祷?)。在什么“像样的平台”上
python-c'print u'\xff“>某些文件
没有引发UnicodeEncodeError?@Aaron,如果
sys.stdout.encoding
None
(或
'ascii'
,等等),那么您的示例就是这样,当然,在该编码中打印不可渲染的字符是错误的——就像@Mike的代码一样,如果他使用但从未指定的神秘的
some_编码类似地是非通用的(或者sys.stdout.encoding不匹配,它完全忽略了这一点).讨厌盲目猜测
某些编码的想法,因为这个答案会迫使人们这样做--一个合适的平台将设置
sys.stdout.encoding
,因此一个简单的
打印将很好地工作,如果你不这样做,你必须将sys.stdout包装到一个包装器中,在一个地方设置编码(然后你可以使用
print
as,这才是正确和体面的!),而不是把这样的猜测散布在家具上(多么可怕的编程方式)。
print“%s”%unicode(obj)
并不是很明确。当%应用时,它会隐式地将str向上转换为unicode,这是Python做的最丑陋的事情之一。几秒钟后偶然发现了这一点。我想这对我来说是可行的!…它依赖于
打印
的unicode字符串,这与我备受诟病、被否决和更早的答案完全相同——se相反,这一次投票的结果可能证实了人们的怀疑,即那些反对者实际上是在进行个人恩怨,而不是技术上的反对,无论他们试图用什么花言巧语来掩饰;-)。@Alex-直到我把答案贴出来之后,我才意识到我的答案有多接近。。。你可能是对的:)@Mark,我想你确实没有,因为我看到你接受了——谢谢!)
print '%s' % (unicode(obj))