パソコン情報

【Sqlserver】【Access】文字化けの原因は、環境依存文字じゃなくUnicode文字!?

ココに注意

どうしても、Ⓟや㋖がSqlserverのテーブルやAccessのテーブルでは、?になる

 

環境依存文字だから何か変換が必要?

調べてみると環境依存文字というのが農林水産省から公表されているようです。

機種依存文字とは、電子的に扱う文字データのうち、パソコンの環境によって文字化けや全く表示できなくなるものをいいます。

Windowsパソコンの場合は下記の様な環境依存文字があるようです。つまり、環境が違うMacやLinuxなどでは文字化けを起こす可能性があるってことです。

※出典:BIGLOBE

 

つまり、㊥は、普通に使えていますので、今回の文字化けは環境依存文字が原因ではないという事です。

 

 

Unicodeで検索すると出てきた特殊文字

Unicode(ユニコード)は、符号化文字集合や文字符号化方式などを定めた、文字コードの業界規格

引用:Wikipedia

 

ネット検索していたら偶然Unicode検索サイトに出てきて、検索すると出てきました。

Unicode文字の入力方法は別記事を参考にどうぞ!

https://pctips.jp/operatingsystem/mictosoft-ime/

 

 

SqlserverクエリでUnicode文字更新

UPDATE dbo.shipper
SET shipper = N'Ⓟ'
WHERE NO = 5;

dbo.shipperというSqlserverのテーブルのNO=5のレコードのshipperフィールドにUnicode文字であるⓅを更新するクエリを作成して実行しました。

決まり事として、

ココがポイント

Unicodeの場合は、N’Unicode文字'

と記入するようです。

 

 

テーブルのデータ型をUnicode文字列

ちゃんとUnicode文字列を更新するようなクエリだったのに、結局?になりました。

原因は、

ココに注意

Sqlserverのテーブルのデータ型が文字列varcher(50)になっていたのがダメ

だったようです。

テーブルのデータ型を、Unicode文字列nvarcher(50)に変更したら、ちゃんとクエリの結果もOKになり、Unicode文字列が表示されました。

 

こんな文字コードの違いで色々と勉強になった出来事でした。

でも、一番良いのは、特殊な文字は使わないってことだと思います。