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

回答編集履歴

3

制御コードを全て除去

2018/02/27 06:49

投稿

fuzzball
fuzzball

スコア16733

answer CHANGED
@@ -1,3 +1,5 @@
1
+ # EOTを信じる
2
+
1
3
  0x04は`EOT`(End of Transmission)だと思うので、そこまでで切り出してからデコードするのが良いかと。
2
4
 
3
5
  ```python
@@ -5,4 +7,13 @@
5
7
  s = b[:b.find(0x04)].decode('shift-jis')
6
8
  print(s[-1])
7
9
  #=> 坂
10
+ ```
11
+
12
+ # 制御コードを全て除去
13
+
14
+ ```python
15
+ import re
16
+ b = b'\x93\x8c\x8b\x9e\x93s \x90V\x8fh\x8b\xe6 \x90_\x8ay\x8d\xe2\x04\x04\x04\x04'
17
+ s = b.decode('shift-jis')
18
+ s = re.sub('[\x00-\x1f\x7f]', '', s) #制御コード除去
8
19
  ```

2

Transmissionかw

2018/02/27 06:49

投稿

fuzzball
fuzzball

スコア16733

answer CHANGED
@@ -1,4 +1,4 @@
1
- 0x04は`EOT`(End of Transfer)だと思うので、そこまでで切り出してからデコードするのが良いかと。
1
+ 0x04は`EOT`(End of Transmission)だと思うので、そこまでで切り出してからデコードするのが良いかと。
2
2
 
3
3
  ```python
4
4
  b = b'\x93\x8c\x8b\x9e\x93s \x90V\x8fh\x8b\xe6 \x90_\x8ay\x8d\xe2\x04\x04\x04\x04'

1

transfer

2018/02/27 06:18

投稿

fuzzball
fuzzball

スコア16733

answer CHANGED
@@ -1,4 +1,4 @@
1
- 0x04は`EOT`(End of Text)だと思うので、そこまでで切り出してからデコードするのが良いかと。
1
+ 0x04は`EOT`(End of Transfer)だと思うので、そこまでで切り出してからデコードするのが良いかと。
2
2
 
3
3
  ```python
4
4
  b = b'\x93\x8c\x8b\x9e\x93s \x90V\x8fh\x8b\xe6 \x90_\x8ay\x8d\xe2\x04\x04\x04\x04'