0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Python小技:文字列から特定の文字コードに含まれない文字を削除する

Last updated at Posted at 2020-12-04

文字列 string から、特定の文字コード(サンプルではCP932)に 含まれない 文字を削除するためには以下のようにするのがおそらく簡単です。

string = string.encode('cp932', errors='ignore').decode('cp932')

要するに、以下の処理をしています。

  1. 最初に文字列を CP932 でエンコードします。この際エンコードできない文字を削除するために encode メソッドに errors='ignore' をオプションとして渡します。
  2. 出来上がったバイト列を再度デコードして文字列に直します。

補足: 実験した環境

> py --version --version
Python 3.9.0 (tags/v3.9.0:9cf6752, Oct  5 2020, 15:34:40) [MSC v.1927 64 bit (AMD64)]
> py
>>> string = "Some string \u200b" # \u200bはCP932の範囲外
>>> print(len(string))
13
>>> string = string.encode('cp932', errors='ignore').decode('cp932')
>>> print(string)
Some string
>>> print(len(string))
12
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?