sql >> データベース >  >> RDS >> Mysql

Windows ODBCドライバー-取得された絵文字データは?

    私の知る限り、ADODBとMySQL Connector / ODBCを使用してUnicode補助文字(emojiなど)を取得する唯一の方法は、それらをバイトとして取得することです— 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. DateTimeからINTに変換する

    2. SQliteはクエリ効率を向上させます

    3. Weblogic10.3.6でJavaPersistence2.0を有効にする方法

    4. 一致率を使用したSQLServerあいまい検索