c# - UTF8⇔二进制,十六进制和64进制转换器
C# - UTF8 ⇔ Binary, Hex, and Base 64 Converter
这个JavaScript函数在c#中的等效是什么?
以下是我试图转换为c#的JavaScript语句:
utf82rstr = function (input) {
var output = "", i = 0, c = c1 = c2 = 0;
while (i < input.length) {
c = input.charCodeAt(i);
if (c < 128) {
output += String.fromCharCode(c);
i++;
} else if ((c > 191) && (c < 224)) {
c2 = input.charCodeAt(i + 1);
output += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
i += 2;
} else {
c2 = input.charCodeAt(i + 1);
c3 = input.charCodeAt(i + 2);
output += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
i += 3;
}
}
return output;
}
您可以使用Char.ConvertFromUtf32()
或Char.Parse
//Both of rsult1 and result2 will be "A"
var result1 = Char.ConvertFromUtf32(int.Parse("0041", System.Globalization.NumberStyles.HexNumber));
var result2 = Char.Parse("'u0041").ToString();
这是你提到的样品:
// returns س
var result = Char.ConvertFromUtf32(((216 & 31) << 6) | (179 & 63));
我使用这个函数并为我工作。我的解决方案:
static string utf82rstr(string input) {
var output = "";
int i = 0, c = 0, c2 = 0, c3 = 0;
while (i < input.Length) {
var tmp = input[i]; // /n == 10
c = ((int) input[i]);
if (c == 10) {
output += "~";
i++;
} else if (c == 0) {
output += "";
i++;
} else if (c < 128) {
output += Char.ConvertFromUtf32(c);
i++;
} else if ((c > 191) && (c < 224)) {
c2 = ((int) input[i + 1]);
output += Char.ConvertFromUtf32(((c & 31) << 6) | (c2 & 63));
i += 2;
} else {
try {
c2 = (int) input[i + 1];
c3 = (int) input[i + 2];
output += Char.ConvertFromUtf32(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
i += 3;
} catch (Exception e) {
output += "";
i += 3;
}
}
}
return output;
}
相关文章:
- 正在将unicode转换为十六进制
- 在js中将字符串转换为十六进制
- 将html代码转换为十六进制
- 无需Javascript内置函数即可将十进制转换为十六进制
- 将hsv转换为十六进制的Javascript函数
- Extjs 6.0 颜色选择器十六进制字段
- 如何在 JavaScript 中将 ASCII 转换为十六进制
- 将带有转义字符和 ASCII 值的字符串转换为十六进制
- 转换颜色十六进制值以用于三个 JSON 文件.js
- 如何将负十进制转换为十六进制
- 如何在 JavaScript 中将字符串中不确定的 rgb 出现次数转换为十六进制
- 将数字转换为十六进制值,但使它们成为两位数
- 用Javascript将大整数转换为十六进制字符串
- 在JavaScript中的Three 3dObject中从字符串转换为十六进制代码(0x000000)
- 将十六进制字符串转换为十六进制类型
- 将字符串中的句点从charcode转换为十六进制(javascript)
- 将字符串转换为十六进制,然后再转换回字符串
- 使用bitcoinjs-min.js从字节数组转换为十六进制格式
- 如何将缓冲区数组转换为十六进制
- JavaScript:将十六进制值的字符串表示形式转换为十六进制