使用Go语言libpq驱动向PostgreSQL插入含特殊UTF-8字符的邮箱地址时遭遇编码不兼容错误的求助
Go语言libpq驱动向PostgreSQL插入含特殊UTF-8字符的邮箱地址时遭遇编码不兼容错误的求助
大家好,我最近在用Go语言的libpq驱动操作PostgreSQL数据库时碰到了一个编码相关的问题,折腾了好一阵没解决,想请教下各位:
我尝试插入一个包含特殊UTF-8字符的邮箱地址,结果直接报错了,错误信息如下:
Unable to execute the query. pq: character with byte sequence 0xf0 0x9f 0x9a 0x80 in encoding "UTF8" has no equivalent in encoding "LATIN1"
查了一下,这个字节序列对应的是UTF-8的🚀表情字符,确实不在LATIN1的字符集里,只有0xf0是LATIN1的可打印字符。
我要插入的邮箱地址具体是这样的:
author := "🚀 Steven Duncan 🧌 <steven.duncan@gmail.com>"
我本来想着用SanitizeSQL函数来处理这种特殊字符,避免报错,但这个函数并没有起作用,我的核心代码逻辑是这样的:
sqlStatement := `INSERT INTO logs (author) VALUES ($1) RETURNING id` sql_with_args, err := SanitizeSQL(sqlStatement, author)
我写了完整的演示代码逻辑,方便复现这个问题。
备注:内容来源于stack exchange,提问作者Leahcim
相关产品推荐
相关产品推荐

