Hemligheterna bakom UTF-8 och Unicode

Permalänk
Melding Plague

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

Visa signatur

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

Permalänk
Medlem

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

Visa signatur

5950X, 3090

Permalänk
Avstängd

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.

Permalänk
Medlem

Nice! Mer såna här artiklar!

Visa signatur

i7 4770k @4.3GHz | Asus z87-pro | Asus 1080 | 16GB RAM | Samsung 840 Pro 256GB | 3TB HDD| Corsair RM850
Thinkpad x60 tablet | 3GB RAM | Crucial M4 128GB
Amiga 500+, Commodore 64/128D

Permalänk
Avstängd
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.

Permalänk
Medlem

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

Permalänk
Medlem

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

Visa signatur

Citera för svar!

Permalänk
Medlem
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å.

Visa signatur

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

Permalänk
Medlem

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

Permalänk
Medlem

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!

Visa signatur

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

Permalänk
Inaktiv
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)

Permalänk
Medlem
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.

Permalänk
Medlem
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!

Permalänk
Medlem

Mer sånthär!

Visa signatur

ᕦ(ツ)ᕤ

Permalänk
Inaktiv

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.

Permalänk
Medlem
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

Visa signatur

Mjölnir: Ryzen 9 3900X | X570-I | Ballistix Sport 32GB | Powercolor RX 5500XT 4GB ITX | Kolink Sattelite
Server: Ryzen 5 1400 | X470-F | Ballistix Sport 24GB | ASUS HD 7790 2GB | Sapphire RX 470 8GB ME | NZXT Switch 810

Permalänk
Avstängd
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.

Permalänk
Medlem

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?

Visa signatur

Machina improba!

Permalänk
Medlem

Mer sånt här tack!

Visa signatur

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

Permalänk
Datavetare

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...

Visa signatur

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

Permalänk
Medlem

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...

Visa signatur

Ny dator Lexius signatur 2018 edition Ryzen 7 2700X@4.35PBO/Vega 64 Nitro+/16 GB DDR4 Patriot Viper4 2866mhz/ ASUS B450 F-Gaming/ 500GB samsung 970 evo m.2ssd / 2TB SSHD/1TB WD BLUE 7200rpm/WD Black TB/1TB SSHD (AMD StoreMi)PSU Be quiet pure power 730W / Mobo Asus B 450 F-Gaming/Hörlurar Sennhieser 58X Mobil Samsung Galaxy S20FE 5G 256GB/8GB Ram Skärm Asus TUF Gaming 144HZ IPS Async

Permalänk
Medlem
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.

Visa signatur

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

Permalänk
Medlem
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]

Visa signatur

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: Samsung Galaxy S10

Permalänk
Medlem

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

Permalänk
Entusiast

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?

Visa signatur

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)

Permalänk
Inaktiv
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.

Permalänk
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?

Permalänk
Medlem
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

Permalänk
Medlem
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.

Visa signatur

Machina improba!

Permalänk
Hedersmedlem
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".

Visa signatur

Asus ROG STRIX B550-F / Ryzen 5800X3D / 48 GB 3200 MHz CL14 / Asus TUF 3080 OC / WD SN850 1 TB, Kingston NV1 2 TB + NAS / Corsair RM650x V3 / Acer XB271HU (1440p165) / LG C1 55"
Mobil: Moto G200