Moved discussion of accents to cipher breaking
authorNeil Smith <neil.git@njae.me.uk>
Wed, 12 Mar 2014 12:47:05 +0000 (12:47 +0000)
committerNeil Smith <neil.git@njae.me.uk>
Wed, 12 Mar 2014 12:47:05 +0000 (12:47 +0000)
slides/caesar-encipher.html

index f45a166ca80d71f37605364c4dac44c9e43925d1..3bc519c9b59c27f05785cced5ea703da9f715d8a 100644 (file)
@@ -120,49 +120,6 @@ if __name__ == "__main__":
 
 ---
 
-# Accents
-
-```python
->>> caesar_encipher_letter('é', 1)
-```
-What does it produce?
-
-What should it produce?
-
-## Unicode, combining codepoints, and normal forms
-
-Text encodings will bite you when you least expect it.
-
-* urlencoding is the other pain point.
-
----
-
-# Five minutes on StackOverflow later...
-
-```python
-def unaccent(text):
-    """Remove all accents from letters. 
-    It does this by converting the unicode string to decomposed compatibility
-    form, dropping all the combining accents, then re-encoding the bytes.
-
-    >>> unaccent('hello')
-    'hello'
-    >>> unaccent('HELLO')
-    'HELLO'
-    >>> unaccent('héllo')
-    'hello'
-    >>> unaccent('héllö')
-    'hello'
-    >>> unaccent('HÉLLÖ')
-    'HELLO'
-    """
-    return unicodedata.normalize('NFKD', text).\
-        encode('ascii', 'ignore').\
-        decode('utf-8')
-```
-
----
-
 # Doing all the letters
 
 ## Test-first developement