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

回答編集履歴

2

漢字範囲の説明を訂正

2017/03/27 11:01

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

answer CHANGED
@@ -8,6 +8,6 @@
8
8
 
9
9
  iconv -f UTF-8 -t SHIFT-JIS input | cut -b ... | iconv -f SHIFT-JIS -t UTF-8 >output
10
10
 
11
- ただ注意が必要なのはUTF-8(というよりUNICODE)で表現できる全ての文字がSHIFT-JISで表せないことです。SHIFT-JISで扱える文字コードはJIS X 0201/JIS X 0208(つまりJIS第二水準までの漢字の範囲)なのでその範囲なら上記の方法でうまくいくと思います。
11
+ ただ注意が必要なのはUTF-8(というよりUNICODE)で表現できる全ての文字がSHIFT-JISで表せないことです。SHIFT-JISで扱える文字コードは(概ね)JIS第二水準までの漢字の範囲なのでその範囲なら上記の方法でうまくいくと思います。(もっと広い範囲を扱えるかも知れませんがJIS第二水準までなら確実といえるのではないかと思います。SHIFT-JISといっても若干バリエーションがあったりして混乱しますね・・・)
12
12
 
13
13
  しかしそれを超える範囲の文字を扱う必要があるなら、文字数と文字幅を意識しながら切り出すようなスクリプトを書かなければならないと思います。(そういうことが簡単にできるコマンドがあるかも知れませんが残念ながら自分は知りません)

1

誤記訂正

2017/03/27 11:01

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

answer CHANGED
@@ -10,4 +10,4 @@
10
10
 
11
11
  ただ注意が必要なのはUTF-8(というよりUNICODE)で表現できる全ての文字がSHIFT-JISで表せないことです。SHIFT-JISで扱える文字コードはJIS X 0201/JIS X 0208(つまりJIS第二水準までの漢字の範囲)なのでその範囲なら上記の方法でうまくいくと思います。
12
12
 
13
- しかしそれを超える範囲の文字を扱う必要があるなら、文字数と文字幅を意識しながら切り出すようなスクリプト書かなければならないと思います。(そういうことが簡単にできるコマンドがあるかも知れませんが残念ながら自分は知りません)
13
+ しかしそれを超える範囲の文字を扱う必要があるなら、文字数と文字幅を意識しながら切り出すようなスクリプト書かなければならないと思います。(そういうことが簡単にできるコマンドがあるかも知れませんが残念ながら自分は知りません)