我已使用表和数据库并将其更改为
这些解决方案似乎没有帮助
字符串以utf-8(3位)格式从python发送到MySQL
utf8使用3位
并且表情符号需要
4位(由于utf8mb4)
How to use variables in SQL statement in Python?
How to store Emoji Character in MySQL Database
我创建了一个表格
<html>
<head>
<title>Test2</title>
</head>
<body>
<form action="insert_emoji_test" method="POST">
<input type="text" placeholder="enter text" name="myinput">
<input type="submit" value="submit">
</form>
</body>
</html>
所以我给表情符号字段myinput vvg 现在我想将此表情符号保存到MySQL数据库中
from flask import Flask, render_template, request
from flask_mysqldb import MySQL
app = Flask(__name__)
app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = ''
app.config['MYSQL_DB'] = 'test2'
# Tried but didn't help
# app.config['MYSQL_CHARSET'] = 'utf8mb4'
mysql = MySQL(app)
@app.route('/')
def test2():
return render_template('test2.html')
@app.route('/insert_emoji_test', methods=['POST'])
def insert_emoji_test():
myinput = request.form['myinput']
print('MyInput : \t' , myinput)
cur = mysql.connection.cursor()
sql_query = 'INSERT INTO test2 VALUES (' + myinput + ')'
cur.execute(sql_query)
cur.close()
return render_template('test2_result.html', result = myinput)
if __name__ == '__main__':
app.run(debug = True)
存储值时出现此错误
MySQL 1300,“无效的utf8字符串
说
MySQLdb._exceptions.OperationalError
MySQLdb._exceptions.OperationalError:(1300,“无效的utf8字符串:'vv \ xF0 \ x9F \ x98 \ x83g'”)
我将mysql表和数据库排序规则更改为
utf8mb4_unicode_ci
和utf8mb4_general_ci
要从表单中检索表情符号并将其作为表情瓶应用程序中的表情符号保存到mysql