中の技術日誌ブログ

C#とC++/CLIと
VBと.NETとWindowsで戯れる
 

目次

Blog 利用状況

ニュース

自己紹介

東京でソフトウェアエンジニアをやっています。
お仕事大募集中です。
記事執筆や、講師依頼とかでも何でもどうぞ(*^_^*)
似顔絵 MSMVPロゴ
MSMVP Visual C# Since 2004/04-2013/03

記事カテゴリ

書庫

日記カテゴリ

00-整理

01-MSMVP

UnicodeにあってShiftJISにない文字

をチェックするためにちょっと実験してみましょう。

.NET 3.5な環境でコンパイルしてください

using System;
using System.IO;
using System.Text;

namespace ConsoleApplication1
{
	class Program
	{
		static void Main(string[] args)
		{
			var sb = new StringBuilder();
			var shiftjis = Encoding.GetEncoding("shift_jis");
			for ( var i = 0; i < 0xffff; i++)
			{
				//サロゲートペア飛ばし
				if ( 0xd800 <= i && i <= 0xdfff)
				{
					continue;
				}
				var c = Convert.ToChar(i);
				var bs = shiftjis.GetBytes(c.ToString());
				var str = shiftjis.GetString(bs);
				if ( c != str[0])
				{
					sb.AppendLine(string.Format("{0:X}\t{1}\t{2:X}\t{3}",i, c, Convert.ToInt32(str[0]), str));
				}
			}
			var filepath =Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "testshiftjis.txt");
			System.IO.File.WriteAllText(filepath, sb.ToString());

		}
	}
}

やっていることは簡単で、UnicodeからShiftJISに変換して、再度Unicodeにして元に戻っているかどうかを調べています。

サロゲートペア部分は今回の調査対象から外しています。(調査が面倒だから)

いちおうサロゲートペアを除くと63488通りの文字があるのですが、再変換すると54085文字も変わってしまいます。

大概は再変換後の文字が3F(?)になっていて、バインドされていないといわれる文字になっています。

それ以外の別の文字になってしまうというのが83文字あります。たぶんちゃんと表示されないと思いますが

image image 

もちろん結合文字も今回の対象から外しています。

一番多いのはウムラウト文字などの類ですね、ウムラウトが取れています。

純粋にShiftJISシステムに値を渡す場合にどうすべきかを考慮するための基礎資料として調査しているだけですので、.NET以外の場合の変換と同じかどうかはわかりません。

Yenマークも逆変換かけるとBackSlashになっているのがポイントですね。

投稿日時 : 2008年1月6日 1:20

コメントを追加

# re: UnicodeにあってShiftJISにない文字 2008/01/06 3:42 NyaRuRu

var 嫌いな人向けバージョン.
結局何個か残ってますけど.
static void Main(string[] args)
{
  var shiftjis = Encoding.GetEncoding("shift_jis");

  var lines = from i in Enumerable.Range(0, Char.MaxValue)
        where !(0xd800 <= i && i <= 0xdfff) //サロゲートペア飛ばし
        let c = Convert.ToChar(i)
        let bs = shiftjis.GetBytes(c.ToString())
        let str = shiftjis.GetString(bs)
        where c != str[0]
        select string.Format("{0:X}\t{1}\t{2:X}\t{3}", i, c, Convert.ToInt32(str[0]), str);

  //var alltext = lines.Aggregate(new StringBuilder(), (_sb, line) => _sb.AppendLine(line)).ToString();
  var alltext = string.Join("\n", lines.ToArray()) + "\n";

  var filepath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "testshiftjis.txt");
  System.IO.File.WriteAllText(filepath, alltext);
}

# re: UnicodeにあってShiftJISにない文字 2008/01/07 8:59 774RR

う に濁点はあっても
ま に濁点はないのか・・・

片手落ちだと思うのは俺だけではないみたいだ
http://hp.vector.co.jp/authors/VA000964/html/benzen.htm

# LaBMGoDipSTNx 2011/12/22 22:05 http://www.discreetpharmacist.com/ita/index.asp

I decided to help and sent a post to the social bookmarks. I hope to raise it in popularity!!...

# DcCuwMiJiRiUNkyUPQ 2011/12/26 23:46 http://www.discreetpharmacist.com/ger/index.asp

I serched through the internet and got here. What a wonderful invention of the mankind. With the help of the network you communicate, learn, read !... That helped us to get acquainted!...

# dQnCunYfUETwL 2011/12/27 6:40 http://www.instawares.com/

Of course, I understand a little about this post but will try cope with it!!...

# CaCOHHCenJW 2011/12/27 19:57 http://www.instawares.com/

Strange but true. Your resource is expensive. At least it could be sold for good money on its auction!...

# Your style is very unique in comparison to other folks I have read stuff from. Thanks for posting when you have the opportunity, Guess I will just bookmark this site. 2019/05/09 15:53 Your style is very unique in comparison to other

Your style is very unique in comparison to other folks I have read stuff from.
Thanks for posting when you have the opportunity, Guess I will just bookmark this
site.

# グランドセイコー時計 2021/07/05 20:55 avwyihzhp@softbank.ne.jp

※―※―※ブランド靴人気大活躍※―※―※
老店開業顧客は至上N品物の専門の商店
送★料無★料★〓
■2021年■最新作品も登場。
┣カルティエ
┣クロムハーツ
┣ロレックス
┗ヴィトンコピー
●ブランド服●ブランド靴●ブランドバッグ●
◆高品質。国際速達郵便発送。安心 。最低価格保証。
_|☆|_|送|_ |料|_|☆|無|_|料_|☆|_|( ^_^ )(日本全国)
◆歓迎光臨★送料無料
◆ご安心購入くださいませ。
◆ご注文を待ちしております
◆よろしくお願いいたします_(._.)_

# stromectol uk buy http://stromectolabc.com/
ivermectin 10 mg 2022/02/07 17:44 Busjdhj

stromectol uk buy http://stromectolabc.com/
ivermectin 10 mg

# cost of ivermectin 1% cream http://stromectolabc.com/
ivermectin 1 2022/02/08 10:24 Busjdhj

cost of ivermectin 1% cream http://stromectolabc.com/
ivermectin 1

# order doxycycline 100mg without prescription https://doxycyline1st.com/
how to order doxycycline 2022/02/26 9:40 Doxycycline

order doxycycline 100mg without prescription https://doxycyline1st.com/
how to order doxycycline

# ieGcHpRMeacP 2022/04/19 9:47 johnansaz

http://imrdsoacha.gov.co/silvitra-120mg-qrms

# paxlovid ingredients list https://paxlovid.best/
covid medikament 2022/09/07 22:51 Paxlovid

paxlovid ingredients list https://paxlovid.best/
covid medikament

タイトル
名前
URL
コメント