« [AppleScript]ユニコードエスケープをデコードする【その1:phpを使う】 | トップページ | [AppleScript]YouTubeのBloggerボタンの代わり【Google Chrome専用】 »

[AppleScript]ユニコードエスケープをデコードする【その2:pythonを使う】


Json等でよく使われるUnicode16進エスケープ形式の文字列を
テキストにデコードします。

その1はphpを使いました

その2ではpythonを使います

ながれはこんな感じ
\の処理が面倒でAppleScriptから使うのはちょっと無理があったかな
phpの方が良いですね

Website_image20130210_193115


--------ターミナルをあらかじめ起動しておく
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」カテゴリの記事

AppleScriptCharacter」カテゴリの記事