Mysql
 sql >> база данни >  >> RDS >> Mysql

Windows ODBC драйвер - извлечени данни за емотикони, изобразени като?

Доколкото знам, единственият начин за извличане на Unicode допълнителни символи (напр. емоджи) с ADODB и MySQL Connector/ODBC е да ги извличате като байтове — SELECT CAST(column_name AS BINARY) — и след това ги декодирайте. Следващият пример всъщност е VBA, но настройването му за VBScript е тривиално.

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. MySql таблица за затваряне няма да поддържа дублиращи се подкатегории за различни родители

  2. Как да свържа база данни MySql с Firebase?

  3. Групов максимум на определена колона

  4. Как мога да показвам изображения, съхранявани в MySQL база данни?

  5. Как да сортирам по предишна дата в базата данни?