猿问

在 Golang 中处理西班牙语波浪号

所以我试图使用 sql 驱动程序将此字符串输入到 mysql 数据库中。我收到此错误 -


Do?a Merced Elementary

panic: Error 1366: Incorrect string value: '\x96a Mer...' for column 'name' at row 1

我想排除这个条目,但一直没能做到。我试过了 -


if !strings.ContainsAny(splitStr[2], "U+0303") {

if !strings.ContainsAny(splitStr[2], '\x96') {

但这并没有奏效。


让 mysql 处理这个会更好,但我不确定如何处理。


有什么建议?


编辑


这就是我连接到我的数据库的方式


db, err := sql.Open("mysql", "psanker:123@/education_data")

err = db.Ping()


db.SetMaxOpenConns(0)

check(err)

if err != nil {

    fmt.Println("Failed to prepare connection to database")

    log.Fatal("Error:", err.Error())

}

这是我的问题出现的地方


districtResult, err := db.Exec("INSERT INTO districts(name) VALUES(?)", strings.TrimSpace(splitStr[2]))

check(err)

SHOW CREATE TABLE 的输出


---------------------------------+

| Table     | Create Table                                                                                                                                                                                                                   |

+-----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

| districts | CREATE TABLE `districts` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |


DIEA
浏览 175回答 2
2回答

慕容森

在苹果上运行?我想应该说Doña Merced Elementary?然而,ñ要从 x96 开始,您必须从“MacRoman”编码的文本开始。简单的解决方案可能是SET NAMES macroman在连接到 MySQL 后立即执行。

慕桂英3389331

请将排序规则更改为utf8_general_ci. 它应该工作
随时随地看视频慕课网APP

相关分类

Go
我要回答