#author("2019-12-30T15:34:04+09:00","","") #author("2019-12-30T16:50:27+09:00","","") #navi(../) * StringBuilderをByteの配列に変換する方法 [#k90f224f] 「'System.Text.StringBuilder'から'char[]'へ変換することができません。」のメッセージが表示され解決に困っている場合、~ 本記事が参考なると思います。~ #ref(01.png) #htmlinsert(windev-top.html) * 関連記事 [#df4deacf] -[[文字列をバイト配列に変換・バイト配列を文字列に変換>.NET/文字列をバイト配列に変換・バイト配列を文字列に変換]] * 動作確認環境 [#zf9c1d02] - Windows 10 ver.1909 - Visual Studio 2019 - .Net Core * StringBuilderはStringではない! [#rd9401e1] ついつい StringBuilder を String と勘違いし以下のようなエラーが Visual Studio上で表示され、「なぜ!?」となった場合は~ ''ToString()するだけです。 ''ToString()するだけ''です。 * サンプルコード [#p749ce1a] C#とVisual Basic(VB)のサンプルコードを以下に記します。 ** C# [#zf3b5637] StringBuilder変数sbをそのままGetBytes()の引数に渡しています。~ GetBytes()はStringを要求しているためエラーとなります。 -エラーとなるサンプルコード using System; using System.Text; class Program { static void Main(string[] args) { byte[] b; StringBuilder sb = new StringBuilder(); sb.Append("あいうえお"); b = System.Text.Encoding.GetEncoding("utf-8").GetBytes(sb); } } -エラーとならないサンプルコード StringBuilder変数sbのToString()メソッドを呼び出しGetBytes()の引数に渡しています。~ using System; using System.Text; class Program { static void Main(string[] args) { byte[] b; StringBuilder sb = new StringBuilder(); sb.Append("あいうえお"); b = System.Text.Encoding.GetEncoding("utf-8").GetBytes(sb.ToString()); } } ** Visual Basic [#b4ff1459] StringBuilder変数sbをそのままGetBytes()の引数に渡しています。~ GetBytes()はStringを要求しているためエラーとなります。 -エラーとなるサンプルコード Imports System Imports System.Text Module Program Sub Main(args As String()) Dim b As Byte() Dim sb As StringBuilder = New StringBuilder() sb.Append("あいうえお") b = System.Text.Encoding.GetEncoding("utf-8").GetBytes(sb) End Sub End Module -エラーとならないサンプルコード StringBuilder変数sbのToString()メソッドを呼び出しGetBytes()の引数に渡しています。~ Imports System Imports System.Text Module Program Sub Main(args As String()) Dim b As Byte() Dim sb As StringBuilder = New StringBuilder() sb.Append("あいうえお") b = System.Text.Encoding.GetEncoding("utf-8").GetBytes(sb.ToString) End Sub End Module 以上、StringBuilderはToStringを使ってStringに変換し、Byte配列に変換する必要があります。 #htmlinsert(windev-top.html)