我使用 Python 2.7 和烧瓶框架与 flask-sqlalchemy 模块。
尝试插入时,我总是遇到以下异常:fp = fopen("D:\\Payload_data\\example.txt", "w+");
for ( i=0; i<ulLines; i++ )
{
pLine =pChar;
printf( "%08lx : ", pChar-base );
ulen=tlen;
ulen = ( ulen > 16 ) ? 16 : ulen;
tlen -= ulen;
for ( j=0; j<ulen; j++ )
{ printf( "%02x ", *(BYTE *)pChar++ );
// ch = *(BYTE *)pChar; // variable for writing to file
fprintf(fp, pChar); //writing to a file
//fputs("data is", fp);
}
我已经将MySQL数据库,表格和相应列设置为Exception Type: OperationalError. Exception Value: (1366, "Incorrect string value: \xF09...
,我可以使用终端插入表情符号字符串。
Flask的应用配置已经包含utf8mb4_general_ci
,但它根本没有帮助,我仍然得到例外。
感谢任何帮助
答案 0 :(得分:3)
也许将来会有人这样做: 我所做的只是在我的配置文件中编辑 sql 连接:
SQLALCHEMY_DATABASE_URI = 'mysql://user:password@localhost/database?charset=utf8mb4'
这样我就可以在不改变数据库或表格的情况下存储表情符号。
来源:https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-iv-database/page/13%0A 评论 #322
答案 1 :(得分:0)
'charset' => 'utf8mb4'
collation
设置为utf8mb4_unicode_ci
答案 2 :(得分:0)
确保使用正确的Python Unicode对象,例如使用u"..."
文字创建的对象。换句话说,您的对象类型应为unicode
而不是str
:
>>> type('ą')
<type 'str'>
>>> type(u'ą')
<type 'unicode'>
请注意,这仅适用于Python 2,在Python 3中,默认情况下所有字符串文字都是Unicode。
答案 3 :(得分:0)
它对我有用:
// cant use GetType() on TransparentProxy as it may throw error
if (RemotingServices.IsTransparentProxy(instance)) return;
然后您可以将“数据”输入数据库。
您可以发送“数据”,例如“”......无论您喜欢什么样的表情符号。
下次,当您从数据库中获取“数据”时:
你应该: import pickle
data = request.get_json().get("data")
data = pickle.dumps(data)
然后你可以将“数据”改为“”