質問編集履歴
2
テキストファイルの一例
test
CHANGED
File without changes
|
test
CHANGED
@@ -48,7 +48,12 @@
|
|
48
48
|
out.write(new)
|
49
49
|
UnicodeEncodeError: 'utf-8' codec can't encode characters in position 266-267: surrogates not allowed
|
50
50
|
```
|
51
|
+
### 作成されたテキストファイルの変換したい部分
|
51
52
|
|
53
|
+
```ここに言語を入力
|
54
|
+
"full_text" : "\u3053\u308C\u306F\u30C6\u30B9\u30C8"
|
55
|
+
```
|
56
|
+
このような記述がされており、その一部分である\ud83dが引っかかったようです。
|
52
57
|
### 特に分からないこと
|
53
58
|
utf-8とcp932の食い違いであるということは記事を読んで理解できました。そのためファイルの読み書き時にutf-8でコーディングを行ってみましたが上手く動きません。どこを見落としているのでしょうか?
|
54
59
|
```Python
|
1
テキストファイルを作成するコードとutf-8変換前後のエラー
test
CHANGED
File without changes
|
test
CHANGED
@@ -3,6 +3,24 @@
|
|
3
3
|
### 生じている問題
|
4
4
|
スクレイピングによって取得した文字列がUnicodeエスケープシーケンスで記述されており、これをデコードするためのコードを実行したところエラーが表示されました。
|
5
5
|
### 当該のソースコード
|
6
|
+
|
7
|
+
```Python3.10.1
|
8
|
+
mport stweet as st
|
9
|
+
|
10
|
+
def try_serch():
|
11
|
+
|
12
|
+
search_tweets_task = st.SearchTweetsTask(all_words = "検索ワード")
|
13
|
+
output_jl_tweets = st.JsonLineFileRawOutput('data.txt')
|
14
|
+
output_print = st.PrintRawOutput()
|
15
|
+
|
16
|
+
st.TweetSearchRunner(search_tweets_task=search_tweets_task,
|
17
|
+
tweet_raw_data_outputs=[output_print, output_jl_tweets],
|
18
|
+
user_raw_data_outputs=[]).run()
|
19
|
+
|
20
|
+
if __name__ == "__main__":
|
21
|
+
try_serch()
|
22
|
+
|
23
|
+
```
|
6
24
|
|
7
25
|
```Python3.10.1
|
8
26
|
source = open('data.txt','r')
|
@@ -16,9 +34,21 @@
|
|
16
34
|
out.close()
|
17
35
|
```
|
18
36
|
### エラー
|
37
|
+
utf-8変換前
|
38
|
+
```
|
39
|
+
Traceback (most recent call last):
|
40
|
+
File "c:\VSCode\Source\Python\Scraping\Encoder.py", line 6, in <module>
|
19
|
-
|
41
|
+
out.write(new)
|
20
42
|
UnicodeEncodeError: 'cp932' codec can't encode character '\ud83d' in position 266: illegal multibyte sequence
|
21
43
|
```
|
44
|
+
変換後
|
45
|
+
```
|
46
|
+
Traceback (most recent call last):
|
47
|
+
File "c:\VSCode\Source\Python\Scraping\Encoder.py", line 6, in <module>
|
48
|
+
out.write(new)
|
49
|
+
UnicodeEncodeError: 'utf-8' codec can't encode characters in position 266-267: surrogates not allowed
|
50
|
+
```
|
51
|
+
|
22
52
|
### 特に分からないこと
|
23
53
|
utf-8とcp932の食い違いであるということは記事を読んで理解できました。そのためファイルの読み書き時にutf-8でコーディングを行ってみましたが上手く動きません。どこを見落としているのでしょうか?
|
24
54
|
```Python
|