BETA

ファイル名に則った文字列出力をEUC-JP環境でUTF-8出力するためのTips

投稿日:2019-07-09
最終更新:2019-07-09

ものすごく限定的な状況ですが、

  • サーバの文字コードがEUC-JP
  • AAA_BBB_YYYY_MM_DD.jpg(AAAはカテゴリ、BBBはIDとする)という命名規則に従った画像ファイルがある
  • 画像ファイルの名前から、定型句の説明書きを記述したHTMLパーツ(AJAXによる後読みで使用、UTF-8)を生成したい
    • ssh越しのviでコメントに少なからずマルチバイト文字を含んだ状態なので、UTF-8テキスト流し込みでの生成は誤動作が怖い……
  • 使用するツールはシェルスクリプト(bash)

という想定です。

で、実現させるために書いた検証コードが以下。

#!/bin/bash  

# 「AAA_BBB_YYYY_MM_DD.jpg」という命名規則の画像ファイルを対象  
img_name='001_001_2019_07_09.jpg';  
# 空気配列宣言  
declare -a a_dirs=();  
# 配列はスペース区切り  
# 「_」と「.」をスペースに置き換えたものを配列の丸括弧の中でecho出力することで、一括代入  
# 中身は `001 001 2019 07 09 jpg` という形になる  
a_dirs=( `echo ${img_name} | tr '_' ' ' | tr '.' ' '` );  

# description=`echo "カテゴリ区分:"${a_dirs[0]}", ID:"${a_dirs[1]}" ("${a_dirs[2]}"年"${a_dirs[3]}"月"${a_dirs[4]}"日)"`; ということ  
description=`echo "カテゴリ区分:"${a_dirs[0]}", ID:"${a_dirs[1]}" ("${a_dirs[2]}"年"${a_dirs[3]}"月"${a_dirs[4]}"日)"`;  

html_content=`cat << EOS  
<p class="hoge">${description}</p>  
EOS  
`  

echo "$html_content" > hoge.html;  

exit 0;  

この方法で実現させました。

……しかし、これかなり限定的な状況よなぁ……。

参考

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

アルム=バンドのQrunch

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう