Unicode-decoder

Zet Unicode-escapes om naar tekst en terug, zoek codepoints op en repareer verminkte tekst (mojibake). Ondersteunt \uXXXX, \UXXXXXXXX en &#XXXX;-entiteiten. Alle verwerking gebeurt in je browser.

Encoderen & decoderen Tekeninformatie Verwerking aan de clientzijde
Resultaat verschijnt hier...

Hoe gebruik je de Unicode-decoder

1

Kies een modus

Selecteer Decoderen (escape naar tekst) of Encoderen (tekst naar escape).

2

Voer invoer in

Plak afhankelijk van de modus Unicode-escapes of platte tekst.

3

Converteren

Klik op Converteren en bekijk het resultaat en de tekendetails.

Wat is Unicode-encoding?

Met Unicode-encoding kunnen tekens uit elke taal of elk symbolsysteem in verschillende formaten worden weergegeven. Veelgebruikte formaten zijn \uXXXX (JavaScript/JSON), &#NNNNN; (HTML-entiteiten) en U+XXXX (Unicode-codepoints). Deze encoding zorgen ervoor dat tekst veilig kan worden verzonden en weergegeven tussen verschillende systemen.

Encodingformaten

JavaScript (\uXXXX)

Gebruikt in JSON- en JavaScript-strings

HTML-entiteiten (&#XXXX;)

Gebruikt in HTML om speciale tekens weer te geven

CSS-escapes (\XXXXXX)

Gebruikt in CSS-content en identifiers

Verminkte tekst repareren (mojibake-herstel)

Verminkte tekst (ook mojibake genoemd) ontstaat wanneer tekst die in de ene tekenset is gecodeerd, met een andere wordt gedecodeerd. Meest voorkomende geval: UTF-8-bytes worden gelezen als Windows-1252 of Latin-1, waardoor "café" "café" wordt en "张三" "å¼ ä¸‰". Schakel bovenaan naar de modus Verminkte tekst repareren, plak de kapotte tekst, en de decoder reconstrueert de oorspronkelijke tekens door elk teken als een ruwe byte te behandelen en het resultaat opnieuw als UTF-8 te decoderen.

Veelvoorkomende voorbeelden van verminkte tekst

Verminkt Gerepareerd Oorzaak
café café UTF-8 → Latin-1
å¼ ä¸‰ 张三 UTF-8 → Latin-1
“hi†“hi” UTF-8 → double-encoded
ü ö ñ ü ö ñ UTF-8 → Windows-1252
�� � � bytes al verloren (U+FFFD)

Om mojibake in je eigen apps te voorkomen, declareer de encoding altijd expliciet: serveer HTML met <meta charset="UTF-8">, stel HTTP-headers in zoals Content-Type: text/html; charset=utf-8, en gebruik consequent UTF-8 in databases en verbindingen.

Vergelijking UTF-8 vs UTF-16 vs UTF-32

UTF-8 UTF-16 UTF-32
Encoding-eenheid 8 bit 16 bit 32 bit
A (U+0041) 41 00 41 00 00 00 41
é (U+00E9) C3 A9 00 E9 00 00 00 E9
中 (U+4E2D) E4 B8 AD 4E 2D 00 00 4E 2D
🎉 (U+1F389) F0 9F 8E 89 D8 3C DF 89 00 01 F3 89
Best geschikt voor Web, JSON, API's — ASCII-compatibel en compact Tekst in het geheugen in Java, JavaScript, C# Directe codepointtoegang, zelden in de praktijk

Veelvoorkomende Unicode-codepoints

Snelle referentie voor vaak opgezochte tekens: leestekens, valutasymbolen, tekens met accenten en wiskundetekens, met hun U+XXXX-codepoints.

Leestekens & symbolen

“U+201C ”U+201D ‘U+2018 ’U+2019
–U+2013 —U+2014 …U+2026  U+A0
©U+A9 ®U+AE ™U+2122 °U+B0

Valutasymbolen

€U+20AC £U+A3 ¥U+A5 ₹U+20B9
¢U+A2 ₽U+20BD ₩U+20A9 ฿U+E3F

Tekens met accenten

éU+E9 èU+E8 êU+EA üU+FC
öU+F6 ñU+F1 åU+E5 øU+F8
çU+E7 ßU+DF ąU+105 žU+17E

Wiskunde & pijlen

±U+B1 ×U+D7 ÷U+F7 ≈U+2248
≠U+2260 ≤U+2264 ≥U+2265 →U+2192
∞U+221E ∑U+2211 √U+221A µU+B5

Veelgestelde vragen

Welke Unicode-escapeformaten worden ondersteund?

Deze tool ondersteunt voor het decoderen \uXXXX (BMP), \UXXXXXXXX (volledige Unicode), &#DDDD; (decimale HTML-entiteit), &#xHHHH; (hexadecimale HTML-entiteit) en U+XXXX (codepointnotatie).

Hoe werkt UTF-8-encoding?

UTF-8 codeert elk Unicode-codepoint met 1 tot 4 bytes. ASCII-tekens (U+0000 tot U+007F) gebruiken 1 byte, Latijnse en andere gangbare tekens 2 bytes, de meeste CJK-tekens 3 bytes, en emoji en zeldzame tekens 4 bytes.

Wat is het verschil tussen \u en \U?

\uXXXX gebruikt 4 hexadecimale cijfers en kan tekens in het Basic Multilingual Plane (U+0000 tot U+FFFF) weergeven. \UXXXXXXXX gebruikt 8 hexadecimale cijfers en kan elk Unicode-teken weergeven, ook die voorbij het BMP.

Waarom toont mijn tekst tekens zoals "é" of "�", en hoe los ik dat op?

Dit zijn tekenen van mojibake: UTF-8-bytes zijn gedecodeerd als Windows-1252/Latin-1. "é" betekent dat de twee UTF-8-bytes van "é" (0xC3 0xA9) als twee afzonderlijke tekens zijn getoond. Gebruik de modus Verminkte tekst repareren om dit te herstellen. "�" is U+FFFD, het vervangingsteken dat ontstaat wanneer bytes al ongeldig waren - die informatie is verloren en kan niet worden hersteld.

Wat is het verschil tussen UTF-8 en UTF-16?

UTF-8 codeert tekens in 1–4 bytes en is volledig ASCII-compatibel, wat het de standaard maakt voor het web, JSON en de meeste API's. UTF-16 codeert tekens in 2 of 4 bytes (met surrogaatparen voor tekens voorbij U+FFFF) en wordt intern gebruikt door JavaScript, Java en Windows. Voor de meeste tekst op het web is UTF-8 kleiner en veiliger.

Wat is het verschil tussen een codepoint en een code-eenheid?

Een codepoint is een getal dat aan een teken is toegewezen in de Unicode-standaard (U+00E9 voor e-acigu); een code-eenheid is de opslageenheid die een encoding gebruikt. UTF-8-code-eenheden zijn 8-bit bytes - U+00E9 kost er twee - terwijl UTF-16-code-eenheden 16-bit zijn, en tekens voorbij U+FFFF hebben er twee nodig (een surrogaatpaar). JavaScript-strings zijn UTF-16, dus 'hello'.length is 5, maar de .length van een emoji is 2.

Wat zijn Unicode-normalisatievormen en wanneer doen ze er toe?

Hetzelfde zichtbare teken kan meerdere bytesequenties hebben: e-acigu als één voorgevormd teken (NFC) of als e plus een combinerend accent (NFD). NFC composeert, NFD decomposeert, en NFKC/NFKD vouwen bovendien compatibiliteitstekens samen (fullwidth vormen, ligaturen). Gebruikersinvoer vergelijken of hashen zonder vooraf te normaliseren is een klassieke bron van dubbele accounts en mislukte opzoekingen - fi-ligatuur vs f+i.

Wat is een BOM en waarom breekt die mijn bestanden?

De byte-order mark is U+FEFF aan het begin van een stream (EF BB BF in UTF-8) om de encoding aan te duiden. Editors verbergen hem meestal, maar stroomafwaarts wordt hij een onzichtbaar eerste teken: een CSV-kop krijgt een spooksleutel, JSON-parsen faalt op het verdwaalde token, en PHP-sessies sturen hem vóór de headers. UTF-8 heeft geen BOM nodig omdat er geen byte-volgorde-twijdudigheid is - sla op zonder BOM.

{-- * External Resources Component(#18 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}