我正在尝试在 C# 中使用 String.PadRight 方法,但它对字符串没有做任何事情。
代码:
int strlen = 4 - (data.Length % 4);
char pad = '=';
string datapad = data.PadRight(strlen, pad);
Run Code Online (Sandbox Code Playgroud)
有问题的字符串是 Base64 编码的数据,我需要末尾的 '=' 来填充它以使 ConvertFromBase64 正常工作。
eyJhbGciOiJSUzI1NiIsImtpZCI6IjY5NDZmZjNlZGUyOTk3ZWExMmVhMDRlNGFhNjYyOWRjZWVhZWZhOTAifQ
Run Code Online (Sandbox Code Playgroud)
strlen必须大于 的长度data才能填充它。正如 Grant Winney 指出的那样,PadRight获取字符串的总宽度,而不仅仅是您希望在字符串末尾重复该字符的次数。
在下面的代码中,strlen将始终小于或等于 4,这远小于 base 64 编码字符串的长度。
int strlen = 4 - (data.Length % 4);
Run Code Online (Sandbox Code Playgroud)
所以你真的可能想要这样做:
int strlen = 4 - (data.Length % 4) + data.Length;
Run Code Online (Sandbox Code Playgroud)
要不就:
string datapad = data.PadRight(strlen + data.Length, pad);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1385 次 |
| 最近记录: |