Contents
- Slides link
- Hi, I'm Grant
- What I said I was going to be talking about
- What I'll actually be talking about
- The desire for a quick fix
- "What do I need to do ... ?"
- But first, some basics
- (Re)learning to count
- Programmer humour
- Bits & bytes
- Encoding text
- The ASCII character set
- Encoding ASCII
- Decoding ASCII with Perl
- Encoding ASCII with Perl
- Encoding ASCII
- "Extended ASCII"
- What's the problem?
- Code-page chaos
- What is Unicode?
- Unicode release history
- Which languages does Unicode support?
- Unicode codepoints
- Exploring Unicode
- Unicode and ISO/IEC 10646
- Unicode codepoints as bytes
- UCS-2 (obselete)
- UTF-16
- Hexdump a UTF-16BE file
- Hexdump a UTF-16LE file
- UTF-32
- Hexdump a UTF-32LE file
- UTF-8
- UTF-8 example
- Choices, choices!
- Convert encodings with iconv
- Unicode Stage One: Denial
- Avoid encoding issues — just use ASCII
- Unicode Stage 2: Anger
- Unicode Stage 3: Bargaining
- Unicode Stage 4: Depression
- Unicode Stage 5: Acceptance
- Just use UTF-8
- Configure your editor:
- Configure your web server
- Ensure your app sends the right header
- View in the browser
- Understanding this problem
- Override server header from HTML
- And finally … some Perl
- Reading a file
- Munging the data
- Perl's two types of strings
- A function you'll never need
- Wide characters
- Specifying an output encoding
- "Wide character" warning is gone
- Specifying the input encoding
- Order is returned to the universe
- Review
- Unicode characters with Perl
- What are characters good for?
- When to use characters?
- Pop quiz: characters or bytes?
- A "rule of thumb"
- The End
- "Bonus" material Normalization
- Is this normal?
- "Bonus" material Databases
- DBD::Postgres
- DBD::MySQL
- "Bonus" material Encoding::FixLatin
- Encoding::FixLatin
- The End (Really)