使用 VB.net 在 MySQL 数据库中存储马拉地语(印度语言)数据

Storing Marathi (Indian Language) data in MySQL database using VB.net

我正在为我的项目使用 VB.net 和 MySQL

我想在 MySQL 数据库中存储马拉地语文本,我搜索了几个小时,通过将 MySQL 数据库编码更改为 utf-8 找到了一半的解决方案。我可以手动(通过 PHPMyAdmin)在 Mysql 数据库中存储马拉地语字符。

但是,当我尝试使用 VB.net 插入一些文本时,我得到的是“???”(问号)而不是马拉地语字符。

我还需要在 VB.Net 中设置编码吗? 如果是那么怎么办?

这是在数据库中插入数据的代码

Private Sub btnSave_Click(ByVal sender As System.Object, _
                            ByVal e As System.EventArgs) Handles btnSave.Click

    Try
        Dim sql As String
        sql = "Insert into info(taluka,village,yojana,group_name," + _ 
            "reg_no,president_name,mobile,crop," + _ 
            "evaluation,amount,characteristic) values('" & _
            cmbTaluka.SelectedItem.ToString & "','" & _
            cmbVillage.SelectedItem.ToString & "','" & _
            cmbYojana.SelectedItem.ToString & "','" & _
            txtGroup.Text & "','" & txtReg.Text & "','" & _
            txtPresident.Text & "','" & txtMobile.Text& "','" & _
            cmbCrop.SelectedItem.ToString & "','" & _
            cmbYear.SelectedItem.ToString + _
            cmbType.SelectedItem.ToString & "','" & _
            Val(txtAmount.Text) & "','" & txtChar.Text & "')"
        cmd = New MySqlCommand(sql, con)
        reader = cmd.ExecuteReader
        MessageBox.Show("Data Saved")
    Catch ex As MySqlException
        MessageBox.Show(ex.Message)

    End Try
End Sub

这是 table : 第一行是通过 PHPMyAdmin 手动插入的

第二个是使用上面的代码。

utf8需要在4处左右建立

  • 数据库中的列 -- 使用 SHOW CREATE TABLE 验证它们是否已明确设置为 utf8,或者默认为 table 定义。 (改数据库default还不够。)
  • 客户端和服务器之间的连接。参见 SET NAMES utf8
  • 您拥有的字节数。 (大概是这样的。)
  • 如果要在网页中显示文本,请检查 <meta> 标记。

如果之后您仍然遇到问题,请返回 SELECT col, HEX(col) ... 以查找一些印刷错误的文本;这将有助于进一步诊断。