encode / string
文字列エスケープ変換
JavaScript・JSON・Python・SQL の文字列エスケープ・アンエスケープをブラウザだけで変換。\n \t \" \'などの特殊文字に対応。入力データはサーバーに送信されません。
文字列を入力して変換ボタンを押してください
使い方
01- 変換対象の言語(JS / JSON / Python / SQL)を選択します
- 「エスケープ」または「アンエスケープ」のモードを選択します
- テキストエリアに変換したい文字列を入力します
- ボタンを押すと、変換結果が出力エリアに表示されます
- 「コピー」ボタンで結果をクリップボードにコピーできます
実装コード
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: 'アンエスケープに失敗しました。' }
}
}よくある使用例・注意点
03SQLインジェクション対策での利用
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ソースコード
05このツールのソースコード(テストコードを含む)はGitHubで公開しています。 MITライセンスで自由に利用・改変できます。
GitHub でコードを見る →