**
最近碰到一个很坑很难受的问题,公司对接一个java项目碰到C# url编码跟java url编码后不一样,导致最后加密结果不一样
**
C# 中文url编码后是小写的
java 中文url编码后是大写的,且会对非安全字符进行编码
不说了,直接上码:
这里得注意一下,有些地方个别情况特殊符号没进行编码的,还是得自己手动Replace一下对应编码
public static class Utils
{
private static string UrlEncode(this string str)
{
var encoding = UTF8Encoding.UTF8;
byte[] bytes = encoding.GetBytes(str);
int IsSafe = 0;
int NoSafe = 0;
for (int i = 0; i < bytes.Length; i++)
{
char ch = (char)bytes[i];
if (ch == ' ')
{
IsSafe