Hemligheterna bakom UTF-8 och Unicode

Trädvy Permalänk
Dalek
Registrerad
Dec 1999

Hemligheterna bakom UTF-8 och Unicode

Problem med teckenkodning kan få vem som helst att drömma mardrömmar. Nördkomikern Tom Scott förklarar både problematiken och möjliga lösningar, inklusive finurliga UTF-8.

Läs artikeln

Observera att samma trivselregler gäller i kommentarstrådarna som i övriga forumet och att brott mot dessa leder till avstängning. Kontakta redaktionen om du vill uppmärksamma fel i artikeln eller framföra andra synpunkter.

Trädvy Permalänk
Medlem
Plats
Westrobothnia
Registrerad
Okt 2008

Det vore skönt om utf-8 var default överallt (alla textredigerare osv), för länge sedan.

3700X, 2080 Ti, 4K

Trädvy Permalänk
Avstängd
Registrerad
Okt 2011

För programmerare så har Joel on Software skrivit The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!).

Det var Bell Labs som uppfann UTF-8 med operativsystemet Plan 9 from Bell Labs, efterföljaren till Unix.

Trädvy Permalänk
Medlem
Plats
Uppsala
Registrerad
Nov 2011

Nice! Mer såna här artiklar!

i7 4770k @stock | Asus z87-pro | Gigabyte gtx 670 OC | 8GB RAM | Samsung 840 Pro 256GB | 3TB HDD| Corsair RM850 | en dvdspelare
i7 950 @3.2GHz | Sabertooth x58 | HIS HD5770 | 6GB RAM | 500GB HDD | Antec Earthwatts 500W
Thinkpad x60 tablet | 3GB RAM | Crucial M4 128GB

Trädvy Permalänk
Avstängd
Registrerad
Okt 2011
Skrivet av backfeed:

Det vore skönt om utf-8 var default överallt (alla textredigerare osv), för länge sedan.

Microsofts fel. Notepad defaultar till ANSI istället för UTF-8.

Men Unicode är inte helt straightforward heller, för det finns UTF-7, UTF-8, UTF-16, UTF-32, och BOM (byte order mark), etc.

Trädvy Permalänk
Medlem
Plats
Kristinehamn
Registrerad
Mar 2008

Kul att ni postar sånt här också. Lite datorskola mer sådant!

Trädvy Permalänk
Medlem
Plats
192.168.1.253
Registrerad
Dec 2010

Har prenumererat på "Computerphile" (och "Numberphile") länge så blev väldigt förvånad när det helt plötsligt poppade upp på SweC.
Men det var intressant för mej som precis har börjat med C++ och HTML programmering

Citera för svar!

Trädvy Permalänk
Medlem
Registrerad
Apr 2012
Skrivet av simon253:

Har prenumererat på "Computerphile" (och "Numberphile") länge så blev väldigt förvånad när det helt plötsligt poppade upp på SweC.
Men det var intressant för mej som precis har börjat med C++ och HTML programmering

Har kollat på många videos av Numberphile, men en Computerphile var verkligen oväntat, nu är hela kvällen lagd på den kanalen då.

Alla mina leksaker får inte plats här, så här jag listar istället mina favoritinlägg:
1 2 3 4 5 6 7 8 9 10 11 12

Utelåst hobbymoderator

Trädvy Permalänk
Medlem
Registrerad
Jun 2012

Vänta lite, varför fick jag inte denna video i min subscription inbox eller vad det nu heter? =S

CPU: AMD Ryzen 1600 3.8GHz Ram: Corsair 3000MHz 16GB Moderkort: Asus Prime B350 Plus Grafikkort: RTX 2060 PSU: EVGA Supernova G3 750W

Trädvy Permalänk
Medlem
Plats
Umeå
Registrerad
Jul 2001

Cool! Nu är jag några delar av en promille mera nördig, I like! (^–^)

PS. Är inte sarkastisk. <-- detta är inte ironi. <-- detta är inte ironi. <-- detta är inte... F**K 8-loop!

Kör Äppeldata åxå (≠ fanboy)

Trädvy Permalänk
Inaktiv
Registrerad
Feb 2006
Skrivet av backfeed:

Det vore skönt om utf-8 var default överallt (alla textredigerare osv), för länge sedan.

Det skulle vara skönt om Latin 1 var standard för länge sedan. Det är dessutom en standard (ISO/IEC 8859-1)

Trädvy Permalänk
Medlem
Plats
Sölvesborg
Registrerad
Nov 2009
Skrivet av rektor:

För programmerare så har Joel on Software skrivit The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!).

Det var Bell Labs som uppfann UTF-8 med operativsystemet Plan 9 from Bell Labs, efterföljaren till Unix.

Respect Bell Labs....

Många bra saker kommer från Bell Labs.

Jag tror att fler och fler producenter börajr lägga in stöd för UTF-8.

Trädvy Permalänk
Medlem
Plats
Falun
Registrerad
Sep 2011
Skrivet av SanyaIV:

Vänta lite, varför fick jag inte denna video i min subscription inbox eller vad det nu heter? =S

Youtubes subscriptionbox har slutat fungera... Igen...
Förstår inte hur det kan hända gång på gång, dom borde ju få bättre ordning på det efter några gånger kan man tycka.

OT: Som flera redan sagt var det väldigt kul att se Computerphile få uppmärksamhet på SweC. Tycker alla Brady's kanaler är riktigt bra!

Stationär: Cooler master ATCS 840 | Cooler Master Silent Pro 1000W | Asus P8P67 Deluxe B3 | I7 2600K | Noctua NH-D14 | Asus GTX 580 DC II | 2x Intel 320 Series 120GB | XMS3 1600MHZ 16GB
Tillbehör: 2x Dell U2311H | Steelseries 6G V2 | Logitech MX518 | Steelseries Siberia V2 | Plantronics Gamecom 777

Trädvy Permalänk
Medlem
Plats
Kawlmar
Registrerad
Feb 2009

Mer sånthär!

Fractal Design Define S - ASUS Z170 Maximus VIII GENE - Corsair 16GB DDR4 2133MHz - Intel i7 7600k 4.0GHz - 3x Dell Ultrasharp U2312H - Asus GeForce GTX 1070 8GB - Corsair RM750x (750W) - NZXT Kraken X41 (140mm) - Samsung 850 EVO (500GB) - Intel 320 Series 120GB x 2

Trädvy Permalänk
Medlem
Registrerad
Feb 2013

Unicode är alltså teckenuppsättningen, man listar vilka tecken som finns och ger varje tecken ett unikt nummer. Inget sagt om hur det är implementerat (ännu). Teckenuppsättningen är (numera) samma som ISO 10646.

Sedan har vi teckenkodningen, dvs hur varje teckens unika nummer sedan skall kodas i form av ett bit-mönster. Kodningen kan göras på många sätt. Det vanligaste sättet är UTF-8. UTF-8 säger i princip ingenting om vilka tecken som används, det är bara en teckenkodning.

I gamla standarder som ASCII och ISO 8859-1 är teckenuppsättningen och teckenkodningen definierade samtidigt och helt låsta i förhållande till varandra.

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Dec 2008
Skrivet av rektor:

Microsofts fel. Notepad defaultar till ANSI istället för UTF-8.

Men Unicode är inte helt straightforward heller, för det finns UTF-7, UTF-8, UTF-16, UTF-32, och BOM (byte order mark), etc.

"Standarder är bra, alla borde ha en."

Skickades från m.sweclockers.com

Mjölnir: Ryzen 5 2400G | GA-AB350N | Ballistix Elite 16GB | Sapphire RX 470 8GB Miner Edition | IKEA Knagglig
Server: Ryzen 5 1400 | X470-F | Ballistix Sport 24GB | Sapphire RX 580 8GB | Sapphire HD 5850 1GB | NZXT Switch 810

Trädvy Permalänk
Avstängd
Registrerad
Okt 2011
Skrivet av ThomasLidstrom:

Respect Bell Labs....

Många bra saker kommer från Bell Labs.

Jag tror att fler och fler producenter börajr lägga in stöd för UTF-8.

Nja, det vore då på tiden med tanke på att UTF-8 kom 1993.

Trädvy Permalänk
Medlem
Plats
Örebro
Registrerad
Feb 2011

Snyggt att reposta deras video utan att dom får några reklamintäckter när ni kör med eran egna player, eller har ni fått tillåtelse av dom att göra det?

Machina improba!

Trädvy Permalänk
Medlem
Plats
Ankh-morpork
Registrerad
Maj 2012

Mer sånt här tack!

Sandy-bridge + gtx770 /dator
http://dreamhack.se/dhw15/

Trädvy Permalänk
Datavetare
Plats
Stockholm
Registrerad
Jun 2011

Kan definitivt hålla med om att det är "clever", men skulle inte kalla det "beautiful", mer ett nödvändigt ont...

Samma idé har används inom andra områden, t.ex. när AMD skapade AMD64 så dubblade man antal register (till 16 st) utan att ändra på op-koderna som bara har 3 bitar för att referera till register (2^3 = 8st). Om jag vill flytta talet 10 till register al (de nedre 8 bitarna av det 64-bitars registret rax) så kodas det som

b0 0a

Formatet här är "mov byte literal to register" kodas som "1011-1xxx", De 3 xxx bitarna är registret och blir "000" för register "al". 2:a byten är värdet jag vill flytta in (10).

Vill jag i stället flytta in samma värde (10) i register r8b som inte fanns innan 64-bitars x86 så blir det ju problem då det som sagt bara finns 3 bitar för att specificera registret. Vad man alltid kunnat göra på x86 är att förändra beteendet på instruktioner med "prefix", vilket var precis vad AMD gjorde. Register r8b refererar till de nedre 8 bitarna av det första av de 8 nya 64-bitars register man lade till, så instruktionen blir

41 b0 0a

d.v.s exakt samma instruktion fast med ett "prefix" med värde 0x41. Att det är just 0x41 är nog mest en slump.

Fördelen med detta är att 32-bitars instruktionerna är strikt delmängd av 64-bitars instruktionerna, så man får inget extrajobb i att stödja 32-bitarsläge på 64-bitars CPUerna.

Smart? Tja, är det väl. Elegant, vet inte riktigt...

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Dec 2011

Jag förstog lite där i början men jag satt och kolla på hela videon och låtsades att jag förstog allt...

Ny dator Lexius signatur 2019 edition Ryzen 7 2700X@4.1ghz auto oc/Vega 64 Nitro+/16 GB DDR4 Patriot Viper4 2800mhz/ ASUS B450 F-Gaming/ 500GB samsung 970 evo m.2ssd / 2TB SSHD/1TB WD BLUE 7200rpm/WD Black TB/PSU Be quiet pure power 730W / Mobo Asus B 450 F-Gaming/Hörlurar Sennhieser 58X Mobil Oneplus 5T

Trädvy Permalänk
Medlem
Plats
Växjö
Registrerad
Nov 2002
Skrivet av rektor:

Microsofts fel. Notepad defaultar till ANSI istället för UTF-8.

Men Unicode är inte helt straightforward heller, för det finns UTF-7, UTF-8, UTF-16, UTF-32, och BOM (byte order mark), etc.

Mycket man kan beskylla Microsoft för men detta håller jag inte med om. Microsoft började tidigt med unicode (UCS-2) i Windows NT, jag antar innan UTF-8 ens fanns som idé så de försökte, givetvis kunde det gjorts bättre, (Win 9x hade inte stöd för det vad jag vet) men de var oavsett tidigt med att implementera en form av unicode.
Sedan är Notepad ett dåligt exempel då det från början var gjort (och fortfarnde är) som ett enkelt verktyg att läsa gamla text-filer från DOS, dock har ju Notepad haft Unicode sedan 1993 i NT-baserade system så den var ändå ett decennium före många andra texteditorer.

Bättre att skylla på alla gamla UNIX-system som användes för att bygga mycket av teknologin som finns idag. Sun som var ett drivande företag av utvecklingen hade bara begränsat UTF-8 stöd i Solaris 8 (2001), dvs, 8 år efter Microsoft släppt Windows NT 3.1 med unicode-stöd. Apple Mac OS fick (efter lite googling) unicode-stöd i 8.5 (1998). Sen räcker det inte med att operativen har stöd, alla applikationer måste stödja det också, vilket tog lång tid för vissa.

Sen håller jag med om att förvirringen med BOM och UTF-7/16/32 är jobbig, men det mesta Unicode är som tur är UTF-8 utan BOM idag.

kill -s SIGCHLD `pidof Kenny`
bash: Oh my god, they killed Kenny
init: You Bastards

Trädvy Permalänk
Medlem
Plats
::1
Registrerad
Jan 2003
Skrivet av anon81912:

Det skulle vara skönt om Latin 1 var standard för länge sedan. Det är dessutom en standard (ISO/IEC 8859-1)

Tycker du verkligen det skulle vara värt besväret nu?

Källa: [URL="http://googleblog.blogspot.ca/2012/02/unicode-over-60-percent..."]http://googleblog.blogspot.ca/2012/02/unicode-over-60-percent-of-web.html[/URL]

CPU: Ryzen 5 1600 GPU: Asus GeForce GTX 1060 6GB DUAL Moderkort: MSI B350M Mortar
RAM: 16GB Corsair Vengeance DDR4 3200MHz PSU: Corsair RM750X
Laptop: ThinkPad T480s, Core i7 8550U, 16GB RAM Mobil: NVIDIA Shield, Nexus 5x

Trädvy Permalänk
Medlem
Plats
Kristianstad
Registrerad
Jul 2004

Helt 100% är det väl inte. Har ganska mycket problem med japanska program på mitt svenska windows 7.

Trädvy Permalänk
Entusiast
Plats
Stockholm
Registrerad
Jul 2007

Jag själv har förespråkat Unicode i rätt många år nu. Helst med BOM.
Skriver jag något alls i ren "plain text", så ser jag till att den använder UTF8 / Unicode.
Jag har också suttit och svurit halsen ur led i slöa Microsoft är på att uppdatera sig till nya standarder. Det tog evigheter innan Unicode ens började synas i Windows-världen. När Microsoft väl fick tummen ur *****, så tog det lika många evigheter innan program-makarna började fatta vinken själva.

Och än idag har vi programvaru-företag som "vägrar" använda Unicode. I många fall handlar det om kommunikationsprotokoll som överför texter, däribland många kända chat-protokoll.

Föga förvånande är det i regel amerikanska företag som är extremt sega på att uppdatera sig. Man undrar ju om de ens känner till att det finns en värld utanför Amerikas gränser.
Fast.... vem förväntar sig att Amerika skall uppdatera sig till nya bättre och internationellt anpassade standarder?

Bästa programmen till Linux - v2.0
Linux-guide: Val av grafisk miljö. (Att välja distribution).
-
Everyone should have a SGoC in their systems (SGoC: SysGhost on a Chip)

Trädvy Permalänk
Medlem
Registrerad
Feb 2013
Skrivet av SysGhost:

<klipp>
Föga förvånande är det i regel amerikanska företag som är extremt sega på att uppdatera sig. Man undrar ju om de ens känner till att det finns en värld utanför Amerikas gränser.

Nej, det gör dom faktiskt inte. Jag tror bara det är runt 10% av amerikanarna som någonsin har varit utanför USA och då pratar vi Kanada eller Mexico. Européer har svårt att förstå hur kulturellt isolerade många amerikaner är, även välutbildade typ IT-folk.

Ett exempel. När jag bodde i Houston på 80-talet fanns det 2 bokhandlar i en stad på 2 miljoner. Ett hål i väggen i ett shoppingcenter som sålde pocketböcker och en övervintrad hippie som hade en bokhandel i sitt eget hus. Mamman i min värdfamilj läste Det Bästa och räknade sig därmed som intellektuell. En bekant ville glänsa med hur duktig hon var i geografi när hon lysande av stolthet sa att Oslo var huvudstaden i Scandinavia.

Inte ha en susning om vad Unicode är till för? Business as usual.

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jan 2009
Skrivet av Kenza:

Snyggt att reposta deras video utan att dom får några reklamintäckter när ni kör med eran egna player, eller har ni fått tillåtelse av dom att göra det?

Den länkar väl till Computerphiles youtube-film, så det är väl inget repostat?
Eller är det någon funktion i SweClockers hemska player (varför inte använda YouTubes egna) som stoppar reklamintäkter?

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Feb 2007
Skrivet av Nyhet:

Problem med teckenkodning kan få vem som helst att drömma mardrömmar. Nördkomikern Tom Scott förklarar både problematiken och möjliga lösningar, inklusive finurliga UTF-8.

Läs artikeln

Hemligheterna bakom? Trodde det var väldokumenterat hur det funkar

Skickades från m.sweclockers.com

Trädvy Permalänk
Medlem
Plats
Örebro
Registrerad
Feb 2011
Skrivet av qscwdzeax:

Den länkar väl till Computerphiles youtube-film, så det är väl inget repostat?
Eller är det någon funktion i SweClockers hemska player (varför inte använda YouTubes egna) som stoppar reklamintäkter?

Jo den länkar till youtube och ja den stoppar reklamen via youtube. Förmodligen så att swec ska kunna spela sina egna reklamer direkt, vilket är helt ok när det är swecs egna klipp, så som fredagspanelen, men inte när det är andras.

Machina improba!

Trädvy Permalänk
Hedersmedlem
Plats
Uppsala
Registrerad
Jul 2001
Skrivet av anon81912:

Det skulle vara skönt om Latin 1 var standard för länge sedan. Det är dessutom en standard (ISO/IEC 8859-1)

Men det lider ju av exakt det problemet som UTF-8 försöker lösa! Du kan ju inte skriva ett dokument i japanska i Latin1 och räkna med att det går att läsa efteråt. Latin1 funkar ju bara till ett fåtal av de språk som finns.

Latin1 har 256 möjliga tecken, varav 32 är osynliga kontrollkoder, dvs max 224 tecken. Ytterligare 33 används inte, så 191 tecken om jag inte missat något.
Unicode/UTF-8 kan just nu specificera "more than 110,000 characters covering 100 scripts".

X370 Taichi / R7 1700 @ 3.75 GHz 1.2 V / 2x8 GB 3200 MHz CL16 / MSI GTX 1070 Gaming, OC / Samsung 960 EVO 500 GB / Corsair RM650x
LG G6 (H870)