## iconv-lite を使う方法 [[iconv-lite]]の`decode`で[[Unicode]]に変換してから、`encode`で[[Shift_JIS]]にする。 ```ts import iconv from "iconv-lite"; const uint8ArrayStr = Deno.readFileSync("./utf8.txt"); // この2行が実際の変換処理 const str = iconv.decode(uint8ArrayStr, "utf8"); const sjisStr = iconv.encode(str, "sjis"); Deno.writeFileSync("./sjis.txt", sjisStr); ``` ## encoding-japanese を使う方法 [[encoding-japanese]]の `Encoding.convert` で変換する。 > [!caution] > [[CP932]]など一部の[[エンコーディング]]は[[encoding-japanese]]では対応されていないため、それらが必要な場合は[[iconv-lite]]を使った方がいい。 変換後は[[Unicode]]ではないため、文字列ではなくバイナリ([[Uint8Array]])になる。 ```ts export function utf8toSjis(str: string): Uint8Array { return new Uint8Array( Encoding.convert(Encoding.stringToCode(str), { from: "UNICODE", to: "SJIS", }) ); } ``` ## MOC - 📒**関連** - [[Shift-Jisの文字列をUTF-8に変換 (JavaScript)|Shift-Jisの文字列をUTF-8に変換]] - 📜**アクティビティ** - 📝**トラブルシューティング**