[Python-Dev] C code: %s vs %U
Ethan Furman
ethan at stoneleaf.us
Wed Mar 26 15:07:45 CET 2014
On 03/26/2014 06:22 AM, � wrote:
> [Assuming you are talking about PyUnicode_FromFormatV]
>> %s is a string.
>
> No. %s is a char*; C does not have a "string" type.
> The string behind the pointer should be UTF-8 encoded;
> other encodings are tolerated through the "replace" error
> handler.
>
>> %U is unicode?
>
> No. This is a PyObject* whose Python type is 'str'
> (i.e. an object for which PyUnicode_Check succeeds)
>
>> If so, then %s should only be used when it is certain the string in
>> question has no unicode in it?
>
> No. If you have a char*, use %s; using %U would crash.
Many thanks!
--
~Ethan~
More information about the Python-Dev
mailing list