diff options
Diffstat (limited to 'unicode_chars')
-rwxr-xr-x | unicode_chars | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/unicode_chars b/unicode_chars new file mode 100755 index 0000000..25f4522 --- /dev/null +++ b/unicode_chars | |||
@@ -0,0 +1,45 @@ | |||
1 | #!/usr/bin/env python3 | ||
2 | # The MIT License (MIT) | ||
3 | # | ||
4 | # Copyright (c) 2011-2015 Ismaƫl Bouya http://www.normalesup.org/~bouya/ | ||
5 | # | ||
6 | # Permission is hereby granted, free of charge, to any person obtaining a copy | ||
7 | # of this software and associated documentation files (the "Software"), to deal | ||
8 | # in the Software without restriction, including without limitation the rights | ||
9 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
10 | # copies of the Software, and to permit persons to whom the Software is | ||
11 | # furnished to do so, subject to the following conditions: | ||
12 | # | ||
13 | # The above copyright notice and this permission notice shall be included in | ||
14 | # all copies or substantial portions of the Software. | ||
15 | # | ||
16 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
17 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
18 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
19 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
20 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
21 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
22 | # THE SOFTWARE. | ||
23 | |||
24 | import sys | ||
25 | import unicodedata | ||
26 | |||
27 | string = sys.stdin.readline().strip() | ||
28 | for char in string: | ||
29 | print("U+%04x" % ord(char), end="") | ||
30 | if (ord(char) < 31): | ||
31 | print() | ||
32 | else: | ||
33 | print(" " + char + " ", end="") | ||
34 | try: | ||
35 | print(unicodedata.name(char), "["+unicodedata.category(char)+"]") | ||
36 | decomposition = unicodedata.decomposition(char).split(" ") | ||
37 | if len(decomposition) > 1: | ||
38 | for subchar in decomposition: | ||
39 | try: | ||
40 | unicode_char = chr(int(subchar, 16)) | ||
41 | print(" U+%s" % subchar, unicodedata.name(unicode_char)) | ||
42 | except ValueError: | ||
43 | print(" " + subchar) | ||
44 | except: | ||
45 | pass | ||