encode / string

文字列エスケープ変換

JavaScript・JSON・Python・SQL の文字列エスケープ・アンエスケープをブラウザだけで変換。\n \t \" \'などの特殊文字に対応。入力データはサーバーに送信されません。

文字列を入力して変換ボタンを押してください

使い方

01
  1. 変換対象の言語(JS / JSON / Python / SQL)を選択します
  2. 「エスケープ」または「アンエスケープ」のモードを選択します
  3. テキストエリアに変換したい文字列を入力します
  4. ボタンを押すと、変換結果が出力エリアに表示されます
  5. 「コピー」ボタンで結果をクリップボードにコピーできます

実装コード

02

コアロジックは標準ブラウザAPI(JSON.stringify / JSON.parse)と正規表現のみで実装しています。 外部ライブラリは不要なので、そのままコピーしてご利用いただけます。

export type Lang = 'js' | 'json' | 'python' | 'sql'

export function escapeString(input: string, lang: Lang): string {
  switch (lang) {
    case 'js':
      return input
        .replace(/\\/g, '\\\\')
        .replace(/"/g, '\\"')
        .replace(/\n/g, '\\n')
        .replace(/\r/g, '\\r')
        .replace(/\t/g, '\\t')
    case 'json':
      return JSON.stringify(input).slice(1, -1)
    case 'python':
      return input
        .replace(/\\/g, '\\\\')
        .replace(/'/g, "\\'")
        .replace(/\n/g, '\\n')
        .replace(/\r/g, '\\r')
        .replace(/\t/g, '\\t')
    case 'sql':
      return input.replace(/'/g, "''")
  }
}

export function unescapeString(input: string, lang: Lang): Result<string> {
  try {
    switch (lang) {
      case 'js':
      case 'json': {
        const parsed = JSON.parse('"' + input + '"')
        return { ok: true, output: parsed }
      }
      case 'python': {
        const result = input
          .replace(/\\\\/g, '\x00')
          .replace(/\\'/g, "'")
          .replace(/\\n/g, '\n')
          .replace(/\\r/g, '\r')
          .replace(/\\t/g, '\t')
          .replace(/\x00/g, '\\')
        return { ok: true, output: result }
      }
      case 'sql': {
        return { ok: true, output: input.replace(/''/g, "'") }
      }
    }
  } catch {
    return { ok: false, error: 'アンエスケープに失敗しました。' }
  }
}

よくある使用例・注意点

03
SQLインジェクション対策での利用
SQL の文字列リテラルにユーザー入力を埋め込む際は、シングルクォートを '' にエスケープする必要があります。このツールでSQLエスケープの動作を素早く確認できます。プロダクションコードではプリペアドステートメントの利用を推奨します。
JSONデータのデバッグに使う
APIレスポンスやログに含まれるエスケープ済み文字列をアンエスケープして、実際の値を確認するのに便利です。JSON モードでは JSON.parse と同等の処理を行うため、標準的なJSONエスケープに完全対応しています。
JS と JSON のエスケープの違い
JS モードはダブルクォート文字列向けのエスケープです。JSON モードは JSON.stringify 相当で、制御文字(U+0000〜U+001F)もエスケープします。通常のユースケースでは両者の差はほとんどありませんが、制御文字を含む場合は JSON モードを推奨します。
Python の文字列エスケープ
Python モードはシングルクォート文字列向けのエスケープです。バックスラッシュ・シングルクォート・改行・タブに対応しています。raw文字列(r'...')やトリプルクォートには対応していません。
プライバシーについて
入力したテキストはブラウザ内のみで処理されます。サーバーには一切送信されないため、APIキーやパスワードなどの機密情報も安全に変換できます。

関連ツール

04
URLエンコード/デコードHTMLエスケープBase64エンコード/デコード

ソースコード

05

このツールのソースコード(テストコードを含む)はGitHubで公開しています。 MITライセンスで自由に利用・改変できます。

GitHub でコードを見る →