C# 文字列をUnicodeに変換
■事前準備
.NET FrameworkのWebアプリケーション(MVC)を作成する
■サンプルソース
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Mvc;
namespace UnicodeGenerator.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
//Unicode変換用のインスタンス
//第一引数 true:ビッグエンディアン false:リトルエンディアン
//第二引数 BOM(Byte Order Mark)の付加有無
UnicodeEncoding unicodeEnc = new UnicodeEncoding(true, false);
//変換前文字列
string str = "北森齌";
//変換中の一時的な文字列
string tempStr = "";
//変換後のUnicode
string unicode = "";
//変換前文字列を1文字ずつUnicodeに変換する処理
foreach (char _char in str)
{
//変換前文字列の1文字ごとのUnicodeエスケープシーケンス
char[] charArray = new char[1] { _char };
//Unicodeのバイト列
byte[] encodedBytes = unicodeEnc.GetBytes(charArray);
//Unicodeの最初に「U+」を付与
tempStr += "U+";
//Unicodeのバイト列を16進法に変換する処理
foreach (byte _byte in encodedBytes)
{
//0詰めをせずに2桁の16進法でアルファベットを大文字に変換
tempStr += string.Format("{0:X2}", _byte);
}
//Unicode間にカンマで区切る為に変換したUnicodeの最後にカンマを付与
tempStr += ",";
}
//変換後のUnicodeが存在する場合は最後の余分なカンマを削除
if (tempStr.EndsWith(","))
{
//余分なカンマを削除
unicode = tempStr.TrimEnd(',');
} else
{
unicode = tempStr;
}
ViewBag.result = unicode;
return View();
}
}
}