主にプログラミングに関して。Python, .NET Framework(C#), JavaScript, その他いくらか。
記事にあるサンプルやコードは要検証。使用に際しては責任を負いかねます

スポンサーサイト

                
tags:
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Boo or C#: マルチバイト文字を含む文字列をシングルバイト文字の文字列で表現する

                
プログラムを書いていて、値としてマルチバイト文字を渡したいのだけど、シングルバイトの特定の文字しか受け付けてくれないという状況に出くわした。シングルバイトの文字として0-9, _, A-Za-zは受け付けている。じゃあマルチバイト文字が使われた文字列をシングルバイト文字をならべて表現する。その両者を相互変換ができるものを作る。Booで書くけどコンパイルすればC#でも使えるし、そもそもコードがC#に酷似しているので簡単に書き換えられるはず。
参考:
http://msdn.microsoft.com/ja-jp/library/cc189028(v=vs.95).aspx
http://msdn.microsoft.com/en-us/library/bb311038.aspx


class StringConverter:
static def StrToHex(str as string):
hexOutput = ""
for letter in str.ToCharArray():
num = Convert.ToInt32(letter)
hexOutput += "_" + String.Format("{0:X}", num)
return hexOutput


static def HexToStr(hexValues as String):
str = ""
for hex in hexValues.Split(char('_')):
if not hex:
continue

num = Convert.ToInt32(hex, 16)
stringValue = Char.ConvertFromUtf32(num)
str += stringValue
return str



テスト
str1 = StringConverter.StrToHex("abc-def-ghi")
print str1
print StringConverter.HexToStr(str1)

[out]: _61_62_63_2D_64_65_66_2D_67_68_69
abc-def-ghi



str2 = StringConverter.StrToHex("岩に染み入る蝉の声")
print str2
print StringConverter.HexToStr(str2)

[out]: _5CA9_306B_67D3_307F_5165_308B_8749_306E_58F0
岩に染み入る蝉の声
            

コメントの投稿

非公開コメント

プロフィール

hMatoba

Author:hMatoba
Github

最新記事
リンク
作ったものなど
月別アーカイブ
カテゴリ
タグリスト

検索フォーム
Amazon
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。