質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unicode

Unicodeはエンコーディングの標準規格です。1つの文字コード体系で多国語の表現を可能にすることを目指して作られています。

Q&A

解決済

3回答

616閲覧

Encoding.Unicodeについて

daiki002

総合スコア68

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unicode

Unicodeはエンコーディングの標準規格です。1つの文字コード体系で多国語の表現を可能にすることを目指して作られています。

0グッド

0クリップ

投稿2018/04/04 08:29

聞きたいこと

Q1. 何故Encoding.UTF16ではなくEncoding.Unicodeなのでしょうか?

Unicodeは規格の名前なので「Encoding.UnicodeはUTF-16である。」とはならないと思います。
Q2. そもそもこの考えが間違いなのでしょうか?

Unicodeという規格にはUTF-7,UTF-8,CESU-8,UTF-16,UTF-32,UTF-EBCDIC...等含まれているのでのEncoding.Unicodeは不定またはあいまいな指定という気がします。

参考

  • .NET Standard 2.0
  • System.Text.Encoding

https://docs.microsoft.com/ja-jp/dotnet/api/system.text.encoding?view=netstandard-2.0#properties-

  • Unicode

https://ja.wikipedia.org/wiki/Unicode

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

defghi1977

2018/04/04 08:40

Unicodeの歴史的経緯から調べてみると良いよ. はるか昔の16bitくらいありゃ世界中の文字が網羅できるんじゃね?というアルファベットしか知らん欧米人の思い込みが今日の混乱の大本なのです.
guest

回答3

0

ベストアンサー

C#(というかCLI)の内部文字コードはUTF-16ですので、単にUnicodeといったらUTF-16を指すと考えるのが自然です。

ふと気になってCLI(共通言語基盤)の規格書(ISO/IEC 23271)を見てみましたが、そちらも文字コードを「Unicode」と表現しています。もしかしたら、Encoding.Unicodeは「内部文字コードのUnicodeと同じエンコーディング形式」ということを表しているのかもしれません。

ちなみに、ICUというIBMが無料で公開しているUnicodeを中心とした文字列操作のための便利なライブラリーがあるのですが、各種エンコーディング形式とライブラリーの標準文字コードであるUTF-16との相互変換をする関数の名前が、ucnv_fromUnicode/ucnv_toUnicodeだったりします。それらにもいちいち突っ込みを入れていったらきりがありませんね。

投稿2018/04/04 13:26

catsforepaw

総合スコア5938

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

daiki002

2018/04/04 13:42

ありがとうございました。 内部文字コードが関係したいたのですね。
guest

0

unicodeの構想当初が16ビット固定長だったので、unicode=uft-16と作成されたのではないでしょうか。
その後、UTF-7やUTF-8などが規定された為、そちらはそのままの名称が採用され、現在に至るという感じじゃないでしょうか。

投稿2018/04/04 08:42

YAmaGNZ

総合スコア10242

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

daiki002

2018/04/04 13:57

ありがとうございました。 UTF-7, UTF-8, という順番でリリースされたのかと思いましたが違っていたのですね。 Unicodeの歴史をたどると色々奥が深そうです。。。 また時間があるときにさぐってみます。
guest

0

Microsoftがそういうふうに決めたから。ですねー

投稿2018/04/04 08:32

y_waiwai

総合スコア87749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問