6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Xcodeの文字化けしたログをVisual Studio Code (VSCode) でデコードする

Last updated at Posted at 2021-02-10

はじめに

Xcodeで開発している際、printNSLogでログ出力をしたときに、下記のような文字化けに遭遇したことはありませんか?

{
    "long_name" = "\U6e0b\U8c37";
    "short_name" = "\U6e0b\U8c37";
}

こちらはUnicodeで出力されているようです。
今回はこちらをVisual Studio Code (VSCode) を使い、読める状態にしていきたいと思います。

前準備

VSCodeを起動し、Shift+Cmd+X もしくは View → ExtensionsExtensions: Marketplace のタブを開き、Encode Decodeと検索すると簡単にインストールできます。
image.png
image.png

手順

1. 文字化けしたログをコピーし、VSCodeへ貼り付ける

image.png

2. VSCodeの置換機能で\U\uへ置換する

Cmd+Opt+F もしくは Edit → Replace を押してください。
image.png

置換する際は下記のように検索すると簡単です。

正規表現あり 正規表現なし
検索キーワード \\U \U
置換キーワード \\u \u
image.png image.png

検索後、Cmd+Enterで全件置換を行えます。
image.png

3. VSCodeの検索機能でUnicode部分を全選択する

Cmd+Opt もしくは Edit → Find を押してください。
image.png

正規表現をONにし、検索キーワードへ \\u.{4} と入力します。
image.png

その後 Opt+Enterを押すと、Unicodeの部分が全選択されます。
この際、カーソルが全てのUnicode部分にあることを確認してください。
これ移行の操作でずっと選択されている必要があるため、誤操作等で選択が解除されてしまった場合は、再度こちらを行い、Unicode部分を全選択してください。
image.png

4. コマンドパレットを表示する

F1 もしくは Shift+Cmd+P もしくは View → Command Palette... を押し、コマンドパレットを表示します。
image.png

5. Encode/Decodeを起動する

Encode/Decode: Convert Selection を選択します。
途中まで文字を打つと簡単に見つかると思います。
image.png

6. Encode/DecodeでUnicodeをStringへ置換する

Unicode to Stringを選択します。
こちらも途中まで文字を打つと簡単に見つかると思います。
image.png

image.png

7. 選択を解除する

Escで選択を解除します。
image.png

選択解除せずに文字入力をしてしまうと、全ての文字が入力した文字に置換されてしまうので、必ず選択を解除しましょう。
image.png

最後に

今回はVSCodeを使って文字化けしたログを読めるようにする方法を紹介しました。
もっと簡単な方法があったり、VSCodeを使わなくても簡単にコンバートできる方法があったら、是非コメントで教えて下さい!

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?