sqlserver2017を使用してます
今、文字コードがshift-jisになっているテーブルがあります
このテーブルを既に登録されているデータを含め
UTF-8へ変換するにはどのような方法がありますか?
ご教授ください
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
文字コードがshift-jisになっているテーブル
というのは VARCHAR
型の項目の話でしょうか?
VARCHAR
型の場合、照合順序の設定に応じて適用される文字コードが異なります。
照合順序が Japanese_CI_AS
であれば Shift-JIS
となり、
照合順序が Latin1_General_CI_AS
であれば Latin-1
となります。
SQL Server 2019 以降であれば照合順序に Japanese_XJIS_140_CI_AS_UTF8
を用いることで UTF-8
として扱えるようですが、残念ながら SQL Server 2017 ではサポートされていない機能のようです。
アプリケーション側のプログラム変更しても構わないのであれば、
テーブルの持ち方としては VARCHAR
⇒ NVARCHAR
(UTF-16) に変更して、
アプリケーションで使用する際に、UTF-16 ⇒ UTF-8 にする、という方法は如何でしょうか?
VARCHAR
⇒ NVARCHAR
に変更するには ALTER TABLE
を用いて以下のようにすれば可能です。
SQL
1ALTER TABLE TableName ALTER COLUMN FieldName NVARCHAR(20)
<参考>
■ SQL Server:文字コードへの理解を深める
https://qiita.com/maaaaaaaa/items/f392e894b8b4bcf7dd5b
■ ALTER TABLE (Transact-SQL)
https://docs.microsoft.com/ja-jp/sql/t-sql/statements/alter-table-transact-sql?view=sql-server-2017
■ SQL Server の UTF-8 サポートのデータストアへの格納と取得について
https://blog.engineer-memo.com/2021/12/31/sql-server-%E3%81%AE-utf-8-%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%82%B9%E3%83%88%E3%82%A2%E3%81%B8%E3%81%AE%E6%A0%BC%E7%B4%8D%E3%81%A8%E5%8F%96%E5%BE%97%E3%81%AB/
投稿2022/05/21 00:59
総合スコア4646
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/05/21 03:14
2022/05/21 03:56