[Python-Dev] C code: %s vs %U
"Martin v. Löwis"
martin at v.loewis.de
Wed Mar 26 14:22:13 CET 2014
[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.
Regards,
Martin
More information about the Python-Dev
mailing list