2017-08-01 23 views
2

utf-8エンコーディングでテキストを表示する必要があります。文字列の一部を別の文字セットに変換する

echo "sometext1 ${DATA[1]} \ 
sometext2 ${DATA[2]} \ 
sometext3 ${DATA[3]} \ 
sometext4 ${DATA[4]} \ 
sometext5 ${DATA[5]}" 
  • UTF-8
  • $ {DATA [1]}桁を
  • $ {DATA [2]}
  • $ {数字が含まれて含まれての符号化とsometext *テキストDATA [3]}
  • $ {DATA [4]}桁を含みウィンドウ-1251のエンコーディングでテキストを含み
  • $ {

    DATA_A=$(${DATA[3]}|iconv -f "windows-1251" -t "UTF-8") 
    DATA_B=$(${DATA[5]}|iconv -f "windows-1251" -t "UTF-8") 
    
    echo "sometext1 ${DATA[1]} \ 
    sometext2 ${DATA[2]} \ 
    sometext3 $DATA_A \ 
    sometext4 ${DATA[4]} \ 
    sometext5 $DATA_B" 
    

    そして、私は行のテキストの一部の変換を得ることはありません:DATAは[5]} 窓-1251のエンコーディング

私は次の操作を実行しようとしたとテキストが含まれています。

私はちょうどその良いすべて、これらの変数を変換する場合:

echo ${DATA[3]}|iconv -f "windows-1251" -t "UTF-8" 
echo ${DATA[5]}|iconv -f "windows-1251" -t "UTF-8" 

答えて

2

echoは、以下のコマンドで

DATA_A=$(echo "${DATA[3]}"|iconv -f "windows-1251" -t "UTF-8") 
DATA_B=$(echo "${DATA[5]}"|iconv -f "windows-1251" -t "UTF-8") 

またはパイプに第二の溶液のための

DATA_A=$(iconv -f "windows-1251" -t "UTF-8" <<< "${DATA[3]}") 
DATA_B=$(iconv -f "windows-1251" -t "UTF-8" <<< "${DATA[5]}") 
+0

感謝を回避するために行方不明になりました! – Andrey

関連する問題