如何将₹(特殊字符)插入数据库

Posted

技术标签:

【中文标题】如何将₹(特殊字符)插入数据库【英文标题】:How to insert ₹(Special characters) into Database 【发布时间】:2021-03-27 04:26:40 【问题描述】:

目前我尝试通过修改我的属性文件来插入那些特殊字符。但是它作为问号而不是 ₹ 符号插入,请在下面找到更改。

spring.datasource.url=jdbc:mysql://localhost:3306/dbName?createDatabaseIfNotExist=true&autoReconnect=true&useSSL=false&useUnicode=true&character_set_server=utf8mb4

我的实体列定义

@Column(name = "question", columnDefinition = "TEXT")
private String question;

我试过了

1.将列定义更改为“nvarchar”我得到了休眠错误。

2.在mysql中将列定义改为ALTER TABLE table CHANGE column column VARCHAR(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 引用,更改mysql表定义enter link description here

如果有任何修改或错误请帮助我。

【问题讨论】:

@Nationalized注解,可能对你的问题有帮助Annotation Type Nationalized 嘿,非常感谢您添加@nationalized 后它正在工作。请您将其添加为答案,以便我可以接受答案。 【参考方案1】:

将字符编码改为utf8_general_ci,

ALTER TABLE test_tb MODIFY COLUMN col VARCHAR(255)
    CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;

然后,

insert into test_tb values("₹");

【讨论】:

感谢您的回复。当我尝试使用 Column TEXT 从弹簧靴插入时,它正在转换为?我已更改为 utf8_general_ci NOT NULL;在 mysql 但仍然是同样的问题【参考方案2】:

@Nationalized注解,可能对你的问题有帮助Annotation Type Nationalized

@Nationalized
@Column(name = "question", columnDefinition = "TEXT")
private String question;

【讨论】:

是的,它在需要执行 ALTER TABLE test_tb MODIFY COLUMN col text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL 之前工作;否则会抛出 getNstring() 错误。谢谢。

以上是关于如何将₹(特殊字符)插入数据库的主要内容,如果未能解决你的问题,请参考以下文章

在 python 中,将数据插入 SQL Server 时如何转义特殊字符?

如何向SQL中插入含@、#等特殊字符的字符串

源数据和目标数据不匹配。我们如何插入特殊字符,如 5±3°C 和 -

Java MySQL:将特殊字符插入数据库

将特殊字符(大于/小于或等于符号)插入 SQL Server 数据库

oracle数据库插入特殊字符