pyunicodeobject型をpybytesobject型に変換するには?
例:
function(PyBytesObject* byteobj){
....operation..
}
PyUnicodeObject* Uniobj;
function((PyBytesObject*) Uniobj);
その結果、バス エラーが発生しました。
pyunicodeobject型をpybytesobject型に変換するには?
例:
function(PyBytesObject* byteobj){
....operation..
}
PyUnicodeObject* Uniobj;
function((PyBytesObject*) Uniobj);
その結果、バス エラーが発生しました。
Python で行っている場合と同じように、エンコードする必要があります。utf-8 の場合:
PyObject* PyUnicode_AsUTF8String(PyObject *unicode)
戻り値: 新しい参照。
UTF-8 を使用して Unicode オブジェクトをエンコードし、結果を Python バイト オブジェクトとして返します。エラー処理は「厳格」です。コーデックによって例外が発生した場合は NULL を返します。
または、utf-16 またはその他のエンコーディングで必要な場合は、それらの API もあります。http://docs.python.org/py3k/c-api/unicode.htmlのドキュメントを参照してください( で始まる関数を検索してくださいPyUnicode_As
)。
エンコーディングを行うときにリターン コードを確認し、終了したらバイト オブジェクトへの参照を解放することを忘れないでください。