String^ ⇔ array^ の相互変換
String^ ⇔ array
デフォルトでEUCに変換しているのに深い意味はないです。
array<System::Byte>^ StringToByteArray(String^ src, String^ name) { if ( name == "" ) name = "euc-jp"; System::Text::Encoding^ enc = System::Text::Encoding::GetEncoding(name); return enc->GetBytes(src); } String^ ByteArrayToString(array<System::Byte>^ src, String^ name) { if ( name == "" ) name = "euc-jp"; System::Text::Encoding^ enc = System::Text::Encoding::GetEncoding(name); return enc->GetString(src); } // おまけ void StringToArray(String^ from, char* to, int toSize) { System::Text::Encoding^ enc = System::Text::Encoding::GetEncoding("euc-jp"); array<System::Byte>^ bytes = enc->GetBytes(from); int size = bytes->Length; if ( size > toSize ) size = toSize; pin_ptr<unsigned char> pin = &bytes[0]; memset(&to[0], 0, toSize); memcpy(&to[0], &pin[0], size); to[toSize - 1] = '\0'; }