我有一个问题,C#(。net连接器)中的INSERT命令会插入除以下字符以外的所有字符:


  ěščů。


当我将此字符写入TextBox并单击添加(启动命令INSERT)时,但是ř will be rč -> cě -> eů -> u

这些字符位于Windows 1250的字符集中(捷克整理,但默认整理也有)。在调用命令INSERT之前,我在查询中尝试了此命令。

set charset cp1250;

最佳答案

从长远来看,使用utf8可能会更好。但是,我剩下的答案适用于cp1250,latin2或utf8。


确定您的文本框正在使用哪种编码。如果那是网页的一部分,则说在页面顶部的标签(如果有)说。如果丢失,则需要它。
执行等效于set_charsetSET 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/

10-16 10:16