Zur Emojianzeige muss von UTF-8 zu UTF-16 konvertiert werden
#1
Hallo,

ich habe mit R Tweets gescrapt und als CSV abgespeichert. Dies ist im Format UTF-8.

Jetzt möchte ich in Excel die Darstellung so haben, dass Emojis richtig als Bild angezeigt werden und nicht wie in meiner angehängten Beispieldatei als z.B. U+0001F5F3

Es ist also diese Unicode Code Point-Kodierung zusammen mit normalem Text in einer Spalte, da die Emojis in Tweets ja zusammen mit normalem Text vorgekommen. Nach meiner Recherche kann Excel Emojis ja nur darstellen, indem es als UTF-16 (decimal) dargestellt werden muss. Man kann ja durch =UNIZEICHEN() das Emoji ausgeben, wenn man den entsprechenden Code hat, also z.B. 10067, was in meiner Datei U+2753 entspricht.

Ich bräuchte also einen Weg, wie ich diese Konvertierung in einer Spalte nur für die Kodierung der Emojis vornehmen kann, nicht den restlichen Text eines Tweets.

Datei ist angehängt. Es geht um die Spalte text.

Ich habe schon das hier gefunden, kenne mich mit VBA aber überhaupt nicht aus: http://dailydoseofexcel.com/archives/201...functions/


Angehängte Dateien
.xlsx   Tweets_CH_2.xlsx (Größe: 50,39 KB / Downloads: 6)
Top
#2
https://www.herber.de/forum/archiv/1752t...tm#1753217
Gruß der AlteDresdner (Win11, Off2021)
Top
#3
Ärger total:

Nach meinem Gedächtnis hatte Schaun vor Jahren eine geniale Formal für 4-byte Emojis entwickelt und ich konnte das in meinen Aufzeichnungen nicht finden.

Crossposting und Fußball(!!!) sind dann noch die Steigerung.

Hier ein Code um die Unicode aus der Spalte E auszulesen und als UniChar in benachbarte Zellen zu schreiben.

Code:
' Font: Segoe UI

Sub T_1()
For i = 2 To Cells(Rows.Count, 5).End(xlUp).Row
    p1 = InStr(1, Cells(i, 5), "<")
    Do While p1 > 0
        p2 = InStr(p1, Cells(i, 5), ">")
        rr = rr + 1
        Cells(rr, 8) = Mid(Cells(i, 5), p1, p2 - p1 + 1)
        p1 = InStr(p2, Cells(i, 5), "<")
    Loop
Next i
End Sub

Sub Emoji()
Dim WSF As WorksheetFunction: Set WSF = Application.WorksheetFunction
For i = 1 To Cells(Rows.Count, 5).End(xlUp).Row
    Hx = Mid(Cells(i, 8), 4, Len(Cells(i, 8)) - 4)
    Debug.Print Hx, WSF.Hex2Dec(Hx), WSF.Unichar(WSF.Hex2Dec(Hx))
    Cells(i, 10) = WSF.Unichar(WSF.Hex2Dec(Hx))
    
Next i
End Sub


Angehängte Dateien
.xlsx   Tweets_CH_2.xlsx (Größe: 59,15 KB / Downloads: 3)
Top
#4
Etwas sachlicher:

Es ist möglich auch 32-bit Emojis per copy/paste in Excel-Zellen einzufügen. Der folgende Code zeigt zuerst, wie das Einfügen auch mit ChrW geht und danach wie die Unicode-Werte wieder ausgelesen werden kann:

Code:
Sub Emoji_einfügen()

Cells(1, 1) = ChrW(-10179) & ChrW(-8689)

End Sub

Sub Unicode_Emoji_auslesen()

For i = 1 To Len(Cells(1, 1))
    Debug.Print AscW(Mid(Cells(1, 1), i, 1))
Next i

End Sub
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste