teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

誤字

2015/08/03 21:11

投稿

sharow
sharow

スコア1151

answer CHANGED
@@ -41,7 +41,7 @@
41
41
  UNICODEコードポイントの1次情報源は[こちら](http://unicode.org/charts/)です。
42
42
 
43
43
  ===
44
- 質問ついての追記(コメント欄ではマークダウン記法ができないので…)。
44
+ 質問ついての追記(コメント欄ではマークダウン記法ができないので…)。
45
45
 
46
46
  > 例に挙げてくださった,’あ’の変換は理解できるのですが,実際にテキストファイル内の文字をコードポイントへ変換する場合はどうしたらよいのでしょうか.
47
47
 

2

質問への回答

2015/08/03 21:10

投稿

sharow
sharow

スコア1151

answer CHANGED
@@ -38,4 +38,47 @@
38
38
  print('ひらがなの数: {}'.format(num_hiragana))
39
39
  ```
40
40
 
41
- UNICODEコードポイントの1次情報源は[こちら](http://unicode.org/charts/)です。
41
+ UNICODEコードポイントの1次情報源は[こちら](http://unicode.org/charts/)です。
42
+
43
+ ===
44
+ 質問へついての追記(コメント欄ではマークダウン記法ができないので…)。
45
+
46
+ > 例に挙げてくださった,’あ’の変換は理解できるのですが,実際にテキストファイル内の文字をコードポイントへ変換する場合はどうしたらよいのでしょうか.
47
+
48
+
49
+ forとかで回せば1文字ずつ取得できますよ。
50
+
51
+ ```
52
+ s = 'あいうえお'
53
+ for letter in s:
54
+ print(letter, ord(letter))
55
+ ```
56
+
57
+ ```
58
+ $ python a.py
59
+ あ 12354
60
+ い 12356
61
+ う 12358
62
+ え 12360
63
+ お 12362
64
+ ```
65
+
66
+ テキストファイルから読み込む場合は、使われるエンコーディングがプラットフォーム依存なので`encoding=`で指定しておいたほうが良いです。
67
+
68
+ ```
69
+ with open('some_text_file', encoding='utf-8') as f:
70
+ for line in f:
71
+ for letter in line:
72
+ print(letter, ord(letter))
73
+ ```
74
+
75
+
76
+ ```
77
+ $ python b.py
78
+ 今 20170
79
+ 日 26085
80
+ は 12399
81
+ 暑 26257
82
+ い 12356
83
+ ! 65281
84
+ ```

1

修正

2015/08/03 21:09

投稿

sharow
sharow

スコア1151

answer CHANGED
@@ -1,4 +1,4 @@
1
- Python3.xの文字列はUNICODEのコードポイントの値の並び(シーケンス)ですので、判定はコードポイントの範囲内にあるか比較するだけです。
1
+ Python3.xの文字列はUNICODEのコードポイントの値の並び(シーケンス)ですので、判定はコードポイントがどの範囲内にあるか比較するだけです。
2
2
 
3
3
  漢字について、中国・日本・韓国の頭文字をとって`CJK`と言います。UNICODEではCJKの漢字を統合して扱っています(unified ideographs)。もっともよく使われるものは0x4e00~0x9fffに収録されているようです。
4
4
  [http://jrgraphix.net/r/Unicode/4E00-9FFF](http://jrgraphix.net/r/Unicode/4E00-9FFF)