【问题标题】:Storing Marathi (Indian Language) data in MySQL database using VB.net使用 VB.net 在 MySQL 数据库中存储马拉地语(印度语言)数据
【发布时间】:2015-06-30 01:23:19
【问题描述】:

我的项目使用 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

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

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

【问题讨论】:

  • 您能否展示您用于填充查询的代码以及它是如何针对数据库执行的?
  • 刚刚在问题中添加了将数据插入数据库的代码
  • 那么例如txtGroup是一个普通的TextBox控件吗?另请注意,此代码可用于SQL Injection
  • This question 可能是相关的,如果不是重复的话 - 尝试将“charset=utf8”添加到您的连接字符串中。
  • @JamesThorpe,谢谢你的朋友.. 添加“charset=utf8”解决了这个问题.. 非常感谢.. 我会修复代码以防止 sql 注入.. :)

标签: mysql vb.net character-encoding


【解决方案1】:

utf8需要在大约4个地方建立。

  • 数据库中的列 -- 使用SHOW CREATE TABLE 来验证它们是否显式设置为 utf8,或者从表定义中默认设置。 (改变数据库default是不够的。)
  • 客户端和服务器之间的连接。见SET NAMES utf8
  • 您拥有的字节数。 (可能就是这种情况。)
  • 如果您在网页中显示文本,请检查<meta> 标签。

如果之后仍有问题,请返回SELECT col, HEX(col) ... 获取一些印刷不良的文字;这将有助于进一步诊断。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多