我有一个问题,C#(。net连接器)中的INSERT命令会插入除以下字符以外的所有字符:
ěščů。
当我将此字符写入TextBox并单击添加(启动命令INSERT)时,但是ř will be r
,č -> c
,ě -> e
和ů -> u
。
这些字符位于Windows 1250的字符集中(捷克整理,但默认整理也有)。在调用命令INSERT之前,我在查询中尝试了此命令。
set charset cp1250;
最佳答案
从长远来看,使用utf8可能会更好。但是,我剩下的答案适用于cp1250,latin2或utf8。
确定您的文本框正在使用哪种编码。如果那是网页的一部分,则说在页面顶部的标签(如果有)说。如果丢失,则需要它。
执行等效于set_charset
或SET NAMES
的C#。使用与步骤1中相同的编码。
建立数据库中的列以具有一些CHARACTER SET
,而不是旧的默认设置latin1
。提到的3个都应该起作用。它不必与步骤1和2相同;当数据在客户端和服务器之间流动时,MySQL将进行代码转换。
一旦表中有数据,请执行SELECT col, HEX(col) ...
以查看存储的内容。对于č
,utf8是2个字节,以十六进制表示:C4 8D
;对于latin2或cp1250,它是一个字节:E8
;
根据Wikipedia,cp1250应该适用于波兰语,捷克语,斯洛伐克语,匈牙利语,斯洛文尼亚语,波斯尼亚语,克罗地亚语,塞尔维亚语(拉丁文字),罗马尼亚语(1993年拼写改革之前)和阿尔巴尼亚语。 utf8mb4适用于整个世界。
关于c# - 如何使用ěšč或insert插入mysql数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29562731/