Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

विंडोज ओडीबीसी ड्राइवर - पुनर्प्राप्त इमोजी डेटा के रूप में प्रस्तुत किया गया?

जहाँ तक मुझे पता है, ADODB और MySQL Connector/ODBC के साथ यूनिकोड पूरक वर्णों (जैसे इमोजी) को पुनः प्राप्त करने का एकमात्र तरीका उन्हें बाइट्स के रूप में पुनः प्राप्त करना है — SELECT CAST(column_name AS BINARY) - और फिर उन्हें डीकोड करें। निम्नलिखित उदाहरण वास्तव में वीबीए है, लेकिन इसे वीबीस्क्रिप्ट के लिए ट्वीव करना मामूली है।

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. विभिन्न तालिकाओं के लिए एक ही ट्रिगर का उपयोग करें

  2. विंडोज से MySQL 5.7 को पूरी तरह से कैसे हटाएं

  3. सॉकेट अपवाद:ऐसा कोई होस्ट ज्ञात नहीं है

  4. Django model.py परिपत्र विदेशी कुंजी

  5. MySQL:दिनांक सीमा के बीच सभी तिथियों का चयन करें और तालिका डेटा मिलान तिथियां प्राप्त करें