Unicode-dekoder

Konverter mellom Unicode-escape og tekst, slå opp kodepunkter, og reparer ødelagt tekst (mojibake). Støtter \uXXXX, \UXXXXXXXX og &#XXXX;-entiteter. All behandling skjer i nettleseren din.

Kode og dekode Tegninformasjon Behandling på klientsiden
Resultatet vises her ...

Slik bruker du Unicode-dekoderen

1

Velg modus

Velg modus Dekode (escape til tekst) eller Kode (tekst til escape).

2

Skriv inn data

Lim inn Unicode-escape eller ren tekst avhengig av modus.

3

Konverter

Klikk Konverter og se gjennom resultatet og tegndetaljene.

Hva er Unicode-koding?

Unicode-koding gjør at tegn fra alle språk og symbolsystemer kan representeres i ulike formater. Vanlige formater er \uXXXX (JavaScript/JSON), &#NNNNN; (HTML-entiteter) og U+XXXX (Unicode-kodepunkter). Disse kodingene sikrer at tekst trygt kan overføres og vises på tvers av systemer.

Kodingsformater

JavaScript (\uXXXX)

Brukes i JSON- og JavaScript-strenger

HTML-entiteter (&#XXXX;)

Brukes i HTML for å representere spesialtegn

CSS-escape (\XXXXXX)

Brukes i CSS content og identifikatorer

Reparer ødelagt tekst (mojibake-reparasjon)

Ødelagt tekst (såkalt mojibake) oppstår når tekst kodet i ett tegnsett dekodes med et annet. Vanligste tilfelle: UTF-8-byte tolkes som Windows-1252 eller Latin-1, slik at "café" blir "café" og "张三" blir "å¼ ä¸‰". Bytt til Reparer ødelagt tekst-modus ovenfor, lim inn den ødelagte teksten, og dekoderen gjenoppbygger de opprinnelige tegnene ved å behandle hvert tegn som en rå byte og dekode resultatet på nytt som UTF-8.

Vanlige eksempler på ødelagt tekst

Ødelagt Reparert Årsak
café café UTF-8 → Latin-1
å¼ ä¸‰ 张三 UTF-8 → Latin-1
“hi†“hi” UTF-8 → double-encoded
ü ö ñ ü ö ñ UTF-8 → Windows-1252
�� � � byte allerede tapt (U+FFFD)

For å forhindre mojibake i egne apper, alltid deklarer kodingen eksplisitt: server HTML med <meta charset="UTF-8">, sett HTTP-headere som Content-Type: text/html; charset=utf-8, og bruk UTF-8 konsekvent i databaser og tilkoblinger.

Sammenligning av UTF-8 vs UTF-16 vs UTF-32

UTF-8 UTF-16 UTF-32
Kodingsenhet 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 egnet for Web, JSON, APIer — ASCII-kompatibel og kompakt Tekst i minnet i Java, JavaScript, C# Direkte kodepunkttilgang, sjeldent i praksis

Vanlige Unicode-kodepunkter

Rask referanse for ofte slått opp tegn: tegnsetting, valutasymboler, aksenttegn og matematisktegn, med U+XXXX-kodepunktene deres.

Tegnsetting og symboler

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

Valutasymboler

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

Aksenttegn

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

Matematikk og piler

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

Vanlige spørsmål

Hvilke Unicode-escapeformater støttes?

Verktøyet støtter \uXXXX (BMP), \UXXXXXXXX (hele Unicode), &#DDDD; (desimal HTML-entitet), &#xHHHH; (heksadesimal HTML-entitet) og U+XXXX (kodepunktnotasjon) for dekoding.

Hvordan fungerer UTF-8-koding?

UTF-8 koder hvert Unicode-kodepunkt med 1 til 4 byte. ASCII-tegn (U+0000 til U+007F) bruker 1 byte, latinske og andre vanlige tegn 2 byte, de fleste CJK-tegn 3 byte, og emoji og sjeldne tegn 4 byte.

Hva er forskjellen på \u og \U?

\uXXXX bruker 4 heksadesimale siffer og kan representere tegn i Basic Multilingual Plane (U+0000 til U+FFFF). \UXXXXXXXX bruker 8 heksadesimale siffer og kan representere alle Unicode-tegn, inkludert dem utenfor BMP.

Hvorfor viser teksten min tegn som "é" eller "�", og hvordan fikser jeg det?

Dette er tegn på mojibake: UTF-8-byte ble dekodet som Windows-1252/Latin-1. "é" betyr at de to UTF-8-bytene i "é" (0xC3 0xA9) ble vist som to separate tegn. Bruk Reparer ødelagt tekst-modus for å fikse det. "�" er U+FFFD, erstatningstegnet som lages når byte allerede var ugyldige - den informasjonen er tapt og kan ikke gjenopprettes.

Hva er forskjellen mellom UTF-8 og UTF-16?

UTF-8 koder tegn i 1–4 byte og er fullt ASCII-kompatibel, noe som gjør den til standarden for web, JSON og de fleste APIer. UTF-16 koder tegn i 2 eller 4 byte (med surrogatpar for tegn utenfor U+FFFF) og brukes internt av JavaScript, Java og Windows. For mesteparten av tekst på weben er UTF-8 mindre og tryggere.

Hva er forskjellen på et kodepunkt og en kodeenhet?

Et kodepunkt er et tall tilordnet et tegn i Unicode-standarden (U+00E9 for e-akutt); en kodeenhet er lagringsenheten en koding bruker. UTF-8-kodeenheter er 8-bit byte - U+00E9 krever to - mens UTF-16-kodeenheter er 16-bit, og tegn utenfor U+FFFF trenger to av dem (et surrogatpar). JavaScript-strenger er UTF-16, så 'hello'.length er 5, men .length for en emoji er 2.

Hva er Unicode-normaliseringsformer, og når spiller de rolle?

Samme synlige tegn kan ha flere bytesekvenser: e-akutt som ett forhåndssammensatt tegn (NFC) eller e pluss en kombinerende aksent (NFD). NFC komponerer, NFD dekomponerer, og NFKC/NFKD bretter i tillegg kompatibilitetstegn (fullbreddeformer, ligaturer). Å sammenligne eller hashe brukerinndata uten å normalisere først er en klassisk kilde til dupliserte kontoer og mislykkede oppslag - fi-ligatur vs f+i.

Hva er en BOM, og hvorfor ødelegger den filene mine?

Byte-rekkeførgemerket er U+FEFF kodet i starten av en strøm (EF BB BF i UTF-8) for å signalisere kodingen. Redigerere skjuler det vanligvis, men nedstrøms blir det et usynlig første tegn: en CSV-header får en spøkelsesnøkkel, JSON-tolking feiler på det villfarne tokenet, og PHP-økter sender det før headere. UTF-8 trenger ingen BOM siden den ikke har tvetydighet i rekkefølge - lagre uten den.

{-- * 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 --}}