Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Trình điều khiển ODBC của Windows - dữ liệu biểu tượng cảm xúc đã truy xuất được hiển thị dưới dạng?

Theo như tôi biết, cách duy nhất để truy xuất các ký tự bổ sung Unicode (ví dụ:biểu tượng cảm xúc) bằng ADODB và MySQL Connector / ODBC là truy xuất chúng dưới dạng byte - SELECT CAST(column_name AS BINARY) - và sau đó giải mã chúng. Ví dụ sau đây thực sự là VBA, nhưng việc chỉnh sửa nó cho VBScript là không đáng kể.

Option Explicit

Sub demo_retrieve_utf8mb4_value()
    Dim conn As New ADODB.Connection
    conn.Open _
        "DRIVER=MySQL ODBC 8.0 Unicode Driver;" & _
        "SERVER=localhost;PORT=3307;" & _
        "UID=root;PWD=(whatever);" & _
        "DATABASE=mydb;" & _
        "charset=utf8mb4;"
    Dim rst As New ADODB.Recordset
    rst.Open "SELECT CAST(emoji AS BINARY) FROM emoji_tbl WHERE id=1", conn
    Dim s As Variant
    s = decode_utf8(rst.Fields(0).Value)
    '
    ' do stuff with the string value

End Sub

Private Function decode_utf8(field_value As Variant) As Variant
    If IsNull(field_value) Then
        decode_utf8 = Null
    Else
        Dim strm As New ADODB.Stream
        With strm
            .Type = adTypeBinary
            .Open
            .Write field_value
            .Flush
            .Position = 0
            .Type = adTypeText
            .Charset = "UTF-8"
            decode_utf8 = .ReadText
            .Close
        End With
        Set strm = Nothing
    End If
End Function


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tối ưu hóa Mysql cho REGEXP

  2. JSON_QUOTE () - Cách thoát các ký tự trong chuỗi được sử dụng làm giá trị JSON trong MySQL

  3. mysql CHỈ THAY THẾ VÀO một số trường

  4. dạng php:không thể cập nhật cơ sở dữ liệu, truy vấn với nhiều kết nối

  5. Cài đặt MySQL Workbench để quản trị cơ sở dữ liệu