在 Visual Basic 6 中将 Unicode 转换为 UTF-8
Converting Unicode into UTF-8 in Visual Basic 6
我尝试从 Visual Basic 6 Access file into a MySQL table. The data contains Polish 字符导入 Unicode 数据。问题是我在 MySQL table.
中得到的不是波兰语字符而是垃圾
导入过程如下所示:
Set db = New ADODB.Connection
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & T_BAZA & ";Persist Security Info=False"
Set rst = New ADODB.Recordset
Set db1 = New ADODB.Connection
db1.Open "DRIVER={MySQL ODBC 3.51 Driver};" & "SERVER=192.168.101.1;" & " DATABASE=jadlospis1;" & "UID=XXX;PWD=XXX;OPTION=3;"
Set rst1 = New ADODB.Recordset
Me.MousePointer = vbHourglass
SQL1 = "DELETE FROM Jadlospis;"
db1.Execute SQL1, , adCmdText
SQL = "SELECT NazwaJadlospisu, Dzien, Posilek, PotrawaProdukt, Waga, Opis, Komentarz FROM JadlospisSzczegoly ORDER BY NazwaJadlospisu, Dzien, Posilek, PotrawaProdukt"
rst.Open SQL, db, adOpenStatic, adLockOptimistic, adCmdText
Do While Not rst.EOF
t_wiersz = t_wiersz + 1
t_NazwaJadlospisu = (LCase(rst("NazwaJadlospisu")))
t_Dzien = (LCase(rst("Dzien")))
t_Posilek = (LCase(rst("Posilek")))
t_PotrawaProdukt = (LCase(rst("PotrawaProdukt")))
T_Waga = (LCase(rst("Waga")))
t_opis = (LCase(rst("Opis")))
t_Komentarz = (LCase(rst("Komentarz")))
SQL1 = "INSERT INTO Jadlospis ( NazwaJadlospisu, Dzien, Posilek, PotrawaProdukt, Komentarz, Waga, Opis ) VALUES ( '" & t_NazwaJadlospisu & "', " & t_Dzien & ", " & t_Posilek & ", '" & t_PotrawaProdukt & "', '" & t_Komentarz & "', " & T_Waga & ", '" & t_opis & "' );"
db1.Execute SQL1, , adCmdText
rst.MoveNext
Loop
db1.Close
rst.Close
db.Close
已使用 DEFAULT CHARACTER SET=utf8 选项创建了 MySQL table。问题是,我在 MySQL table 中得到的不是波兰语字符,而是垃圾,即 table 显示如下:
+------------------------------+
| NazwaJadlospisu |
+------------------------------+
| dieta 1500 kcal |
| dieta wegańska 1500 kcal |
+------------------------------+
2 rows in set (0.00 sec)
它应该像这样显示:
+------------------------------+
| NazwaJadlospisu |
+------------------------------+
| dieta 1500 kcal |
| dieta wegańska 1500 kcal |
+------------------------------+
2 rows in set (0.00 sec)
我尝试了 Internet 上提供的一些功能,但其中 none 有效。
一般问题是:如何在 Visual Basic 6 中转换 Unicode into the UTF-8 字符集?
因为我可以将数据导出到 Excel 电子表格或其他格式,另一个问题是:如何将数据从 MySQL table =33=] 电子表格或其他(例如,.txt)格式?
当你打开与MySQL数据库的连接时定义字符集,以便所有内容都是utf8编码。
添加到您的连接字符串:
charset=UTF8;
如Specifying character set using MySQL ODBC 3.51 Driver
中所述
如果解决了这个问题,您将面临 Windows 包含 Unicode 中的所有内容的问题,当然这不是 utf8。
但是 Stack Overflow 问题 提供了答案。
阅读全部答案。最后还有一个编码函数,两个都需要
我尝试从 Visual Basic 6 Access file into a MySQL table. The data contains Polish 字符导入 Unicode 数据。问题是我在 MySQL table.
中得到的不是波兰语字符而是垃圾导入过程如下所示:
Set db = New ADODB.Connection
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & T_BAZA & ";Persist Security Info=False"
Set rst = New ADODB.Recordset
Set db1 = New ADODB.Connection
db1.Open "DRIVER={MySQL ODBC 3.51 Driver};" & "SERVER=192.168.101.1;" & " DATABASE=jadlospis1;" & "UID=XXX;PWD=XXX;OPTION=3;"
Set rst1 = New ADODB.Recordset
Me.MousePointer = vbHourglass
SQL1 = "DELETE FROM Jadlospis;"
db1.Execute SQL1, , adCmdText
SQL = "SELECT NazwaJadlospisu, Dzien, Posilek, PotrawaProdukt, Waga, Opis, Komentarz FROM JadlospisSzczegoly ORDER BY NazwaJadlospisu, Dzien, Posilek, PotrawaProdukt"
rst.Open SQL, db, adOpenStatic, adLockOptimistic, adCmdText
Do While Not rst.EOF
t_wiersz = t_wiersz + 1
t_NazwaJadlospisu = (LCase(rst("NazwaJadlospisu")))
t_Dzien = (LCase(rst("Dzien")))
t_Posilek = (LCase(rst("Posilek")))
t_PotrawaProdukt = (LCase(rst("PotrawaProdukt")))
T_Waga = (LCase(rst("Waga")))
t_opis = (LCase(rst("Opis")))
t_Komentarz = (LCase(rst("Komentarz")))
SQL1 = "INSERT INTO Jadlospis ( NazwaJadlospisu, Dzien, Posilek, PotrawaProdukt, Komentarz, Waga, Opis ) VALUES ( '" & t_NazwaJadlospisu & "', " & t_Dzien & ", " & t_Posilek & ", '" & t_PotrawaProdukt & "', '" & t_Komentarz & "', " & T_Waga & ", '" & t_opis & "' );"
db1.Execute SQL1, , adCmdText
rst.MoveNext
Loop
db1.Close
rst.Close
db.Close
已使用 DEFAULT CHARACTER SET=utf8 选项创建了 MySQL table。问题是,我在 MySQL table 中得到的不是波兰语字符,而是垃圾,即 table 显示如下:
+------------------------------+
| NazwaJadlospisu |
+------------------------------+
| dieta 1500 kcal |
| dieta wegańska 1500 kcal |
+------------------------------+
2 rows in set (0.00 sec)
它应该像这样显示:
+------------------------------+
| NazwaJadlospisu |
+------------------------------+
| dieta 1500 kcal |
| dieta wegańska 1500 kcal |
+------------------------------+
2 rows in set (0.00 sec)
我尝试了 Internet 上提供的一些功能,但其中 none 有效。
一般问题是:如何在 Visual Basic 6 中转换 Unicode into the UTF-8 字符集?
因为我可以将数据导出到 Excel 电子表格或其他格式,另一个问题是:如何将数据从 MySQL table =33=] 电子表格或其他(例如,.txt)格式?
当你打开与MySQL数据库的连接时定义字符集,以便所有内容都是utf8编码。
添加到您的连接字符串:
charset=UTF8;
如Specifying character set using MySQL ODBC 3.51 Driver
中所述如果解决了这个问题,您将面临 Windows 包含 Unicode 中的所有内容的问题,当然这不是 utf8。
但是 Stack Overflow 问题
阅读全部答案。最后还有一个编码函数,两个都需要