iter = parsed_options.find("twisted");
gen_twisted_ = (iter != parsed_options.end());
+ iter = parsed_options.find("utf8strings");
+ gen_utf8strings_ = (iter != parsed_options.end());
+
if (gen_twisted_){
out_dir_base_ = "gen-py.twisted";
} else {
*/
bool gen_twisted_;
+ /**
+ * True iff strings should be encoded using utf-8.
+ */
+ bool gen_utf8strings_;
+
/**
* File streams
*/
name;
break;
case t_base_type::TYPE_STRING:
- out << "readString();";
+ if (((t_base_type*)type)->is_binary() || !gen_utf8strings_) {
+ out << "readString();";
+ } else {
+ out << "readString().decode('utf-8')";
+ }
break;
case t_base_type::TYPE_BOOL:
out << "readBool();";
"compiler error: cannot serialize void field in a struct: " + name;
break;
case t_base_type::TYPE_STRING:
- out << "writeString(" << name << ")";
+ if (((t_base_type*)type)->is_binary() || !gen_utf8strings_) {
+ out << "writeString(" << name << ")";
+ } else {
+ out << "writeString(" << name << ".encode('utf-8'))";
+ }
break;
case t_base_type::TYPE_BOOL:
out << "writeBool(" << name << ")";