[AppleScript]ユニコードエスケープをデコードする【その2:pythonを使う】
Json等でよく使われるUnicode16進エスケープ形式の文字列を
テキストにデコードします。
その1はphpを使いました
その2ではpythonを使います
ながれはこんな感じ
\の処理が面倒でAppleScriptから使うのはちょっと無理があったかな
phpの方が良いですね
--------ターミナルをあらかじめ起動しておく
tell application "Terminal"
end tell
(*
サンプルテキスト
君が好き feat.SAKURA,K2C SUNSHINE BAND - ミトカツユキ
*)
set theResultText to "\\u685c\\u821e\\u3044\\u6563\\u308b\\u5b63\\u7bc0\\u306b\\u3000\\u4e8c\\u4eba\\u64ae\\u3063\\u305f\\u5199\\u771f\",\"\\n\\u4eca\\u3082\\u5b9d\\u7269\\u3060\\u3088\\u3000\\u5e78\\u305b\\u3060\\u3063\\u305f\\u304b\\u3089\",\"\\n\",\"\\n\\u4e8c\\u4eba\\u3082\\u3046\\u4e00\\u5ea6\\u3000\\u7d20\\u76f4\\u306b\\u3000\\u4eca\\u3000\\u5bc4\\u308a\\u6dfb\\u3048\\u305f\\u306a\\u3089\",\"\\n\\u306d\\u3048\\u3082\\u3046\\u4e8c\\u5ea6\\u3068\\u96e2\\u308c\\u306a\\u3044\\u3000\\u4eca\\u3082\\u3042\\u306a\\u305f\\u304c\\u597d\\u304d\",\"\\n\",\"\\n\\u6b62\\u307e\\u306a\\u3044\\u96e8\\u306b\\u554f\\u3044\\u304b\\u3051\\u3066\\u3082\",\"\\n\\u3053\\u306e\\u8ddd\\u96e2\\u3000\\u5909\\u308f\\u3089\\u306a\\u3044\\u304b\\u3089\",\"\\n\\u541b\\u304c\\u597d\\u304d\\u3060\\u3068\\u8a00\\u3063\\u3066\",\"\\n\\u3042\\u306a\\u305f\\u306e\\u53e3\\u304b\\u3089\\u8a00\\u3063\\u3066\",\"\\n\\u3082\\u3046\\u8ff7\\u3044\\u306f\\u3057\\u306a\\u3044\\u304b\\u3089\",\"\\n\",\"\\n\\u4e8c\\u4eba\\u3082\\u3046\\u4e00\\u5ea6\\u3000\\u7d20\\u76f4\\u306b\\u3000\\u4eca\\u3000\\u8a31\\u3057\\u3042\\u3048\\u305f\\u306a\\u3089\",\"\\n\\u306f\\u3050\\u3089\\u304b\\u3055\\u305a\\u306b\\u3000\\u3046\\u3051\\u3068\\u3081\\u3066\\u3000\\u4eca\\u3082\\u3042\\u306a\\u305f\\u304c\\u597d\\u304d\",\"\\n\",\"\\n\\u4eca\\u3082\\u541b\\u304c\\u597d\\u304d" as text
--------ダイアログを表示
display dialog "変換するテキストをペースト" default answer theResultText
--------返り値を格納
set theResultText to text returned of the result as text
----------不要な文字を削除 ここはお好みで
set theResultText to my replace(theResultText, ",", "") as text
set theResultText to my replace(theResultText, "\"", "") as text
set theResultText to my replace(theResultText, "(", "") as text
set theResultText to my replace(theResultText, ")", "") as text
set theResultText to my replace(theResultText, ";", "") as text
set theResultText to my replace(theResultText, "[", "") as text
set theResultText to my replace(theResultText, "]", "") as text
set theResultText to my replace(theResultText, "draw", "") as text
set theResultText to my replace(theResultText, "\\n", " ") as text
set theResultText to my replace(theResultText, "\\r", " ") as text
------ディレクトリ名用に日付と時間を取得
set nowTime to do shell script "date '+%Y%m%d%H%M%S'" as text
------pythonスクリプトを使ってユーザーテンポラリーのディレクトリを取得します
-------スクリプトとキャッシュクリア用のディレクトリを作ります
do shell script "mkdir -pv /tmp/python/" & nowTime
--------スクリプト用のファイルを作成
do shell script "touch /tmp/python/" & nowTime & "/unicode_escape.py"
------結果用のファイルを作成
do shell script "touch /tmp/python/" & nowTime & "/unicode_escape.txt"
---------1行目を書き込み
do shell script "echo 'import sys' > /tmp/python/" & nowTime & "/unicode_escape.py "
---------2行目を書き込み
do shell script "echo 'import tempfile' >> /tmp/python/" & nowTime & "/unicode_escape.py "
---------3行目を書き込み
do shell script "echo 'print \"" & theResultText & "\".decode(\"unicode_escape\")' >> /tmp/python/" & nowTime & "/unicode_escape.py"
---------ターミナルに渡す用にパスを整形
set theScriptFile to ("/tmp/python/" & nowTime & "/unicode_escape.py") as text
---------ターミナルで実行する
tell application "Terminal"
do script "python " & theScriptFile
end tell
---------文字の置き換えサブルーチン
to replace(theText, orgStr, newStr)
set oldDelim to AppleScript's text item delimiters
set AppleScript's text item delimiters to orgStr
set tmpList to every text item of theText
set AppleScript's text item delimiters to newStr
set tmpStr to tmpList as text
set AppleScript's text item delimiters to oldDelim
return tmpStr
end replace
「unicode_escape.py.rtf」をダウンロード
「unicode_escape.py.scpt.zip」をダウンロード
| 固定リンク
« [AppleScript]ユニコードエスケープをデコードする【その1:phpを使う】 | トップページ | [AppleScript]YouTubeのBloggerボタンの代わり【Google Chrome専用】 »
「CharacterEntity」カテゴリの記事
- [AppleScripts]シングルクオトのエスケープ処理(phpを使う時のお約束)(2013.05.26)
- [AppleScript]ユニコードエスケープをデコードする【その2:pythonを使う】(2013.02.10)
- [AppleScript]ユニコードエスケープをデコードする【その1:phpを使う】(2013.02.10)
- [HTML5]Named character references(2011.01.21)
- これは便利だぁCharacterEntity取得ツール(2011.01.15)
「AppleScriptCharacter」カテゴリの記事
- [AppleScripts]シングルクオトのエスケープ処理(phpを使う時のお約束)(2013.05.26)
- [AppleScript]YouTubeのBloggerボタンの代わり【Google Chrome専用-その2】(2013.02.11)
- [AppleScript]ユニコードエスケープをデコードする【その2:pythonを使う】(2013.02.10)
- [AppleScript]ユニコードエスケープをデコードする【その1:phpを使う】(2013.02.10)
- [file]テキストファイルの文字コードと改行コードを調べる(2012.01.15)