Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Driver Windows ODBC - mengambil data emoji yang dirender sebagai?

Sejauh yang saya tahu, satu-satunya cara untuk mengambil karakter tambahan Unicode (misalnya, emoji) dengan ADODB dan MySQL Connector/ODBC adalah dengan mengambilnya sebagai byte — SELECT CAST(column_name AS BINARY) — dan kemudian memecahkan kodenya. Contoh berikut sebenarnya adalah VBA, tetapi mengubahnya untuk VBScript adalah hal yang sepele.

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. SQL:Chaining Bergabung dengan Efisiensi

  2. Ubah hasil basis data menjadi array

  3. Pemicu MySQL:Sebelum Sisipkan atau Setelah Sisipkan

  4. MySQL - Ganti Nama Kolom

  5. terus mendapatkan kesalahan sintaks (php/mysql)