string str1 = "中华人民共和国";
string str2 = "中国"; str1 = str1.PadRight(20, ' ');
str2 = str2.PadRight(20, ' '); MessageBox.Show(str1.Length.ToString()); //结果为20
MessageBox.Show(str2.Length.ToString()); //结果为20 MessageBox.Show(Encoding.Default.GetByteCount(str1).ToString()); //结果为27,我想让这个长度为20
MessageBox.Show(Encoding.Default.GetByteCount(str2).ToString()); //结果为22,我想让这个长度为20 PadLeft,PadRight能不能将字符串格式化的长度为字节长度,该如何处理?能否实现?
string str2 = "中国"; str1 = str1.PadRight(20, ' ');
str2 = str2.PadRight(20, ' '); MessageBox.Show(str1.Length.ToString()); //结果为20
MessageBox.Show(str2.Length.ToString()); //结果为20 MessageBox.Show(Encoding.Default.GetByteCount(str1).ToString()); //结果为27,我想让这个长度为20
MessageBox.Show(Encoding.Default.GetByteCount(str2).ToString()); //结果为22,我想让这个长度为20 PadLeft,PadRight能不能将字符串格式化的长度为字节长度,该如何处理?能否实现?
PadRight/PadLeft是填充字符数的。
string str1 = "中华人民共和国";
string str2 = "中国";
byte[] temp1 = new byte[20];
byte[] temp2 = new byte[20];
for (int i = 0; i < 20; i++)
{
temp1[i] = temp2[i] = 0x20;//空格
}
Array.Copy(Encoding.Default.GetBytes(str1), temp1, Encoding.Default.GetByteCount(str1));
Array.Copy(Encoding.Default.GetBytes(str2), temp1, Encoding.Default.GetByteCount(str2));
问题已解决
提供方法供参考int iLen = 20;string str1 = "中华人民共和国";
string str2 = "中国";str1 = str1 + string.Empty.PadRight((iLen - Encoding.Default.GetByteCount(str1)));
str2 = str2 + string.Empty.PadRight((iLen - Encoding.Default.GetByteCount(str2)));MessageBox.Show(Encoding.Default.GetByteCount(str1).ToString());
MessageBox.Show(Encoding.Default.GetByteCount(str2).ToString());