Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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)
Antworten Top
#2
https://www.herber.de/forum/archiv/1752t...tm#1753217
Gruß der AlteDresdner (Win11, Off2021)
Antworten 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)
Antworten 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
Antworten Top


Gehe zu:


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