在c#中将字符串转换为us-ascii

发布于 2024-12-15 09:34:16 字数 411 浏览 0 评论 0原文

我想将“123”这样的字符串转换为“\u0031\u0032\u0033”这样的字符串。 我怎样才能在.NET 中做到这一点? 例如:反向转换:

Encoding enc = Encoding.GetEncoding("us-ascii",
                                          new EncoderExceptionFallback(),
                                          new DecoderExceptionFallback());
            byte[] by = enc.GetBytes(s);
            string ans = enc.GetString(by);
            return ans;

I wanto to convert the string like "123" to string like "\u0031\u0032\u0033".
How can i do this in .NET?
For example: reverse convert:

Encoding enc = Encoding.GetEncoding("us-ascii",
                                          new EncoderExceptionFallback(),
                                          new DecoderExceptionFallback());
            byte[] by = enc.GetBytes(s);
            string ans = enc.GetString(by);
            return ans;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

尸血腥色 2024-12-22 09:34:16

.NET 中的字符串已经是 Unicode,因此无需将它们从 Unicode 转换为 Unicode。

如果您想输出 unicode 转义字符串,请尝试以下操作:

string ans = string.Concat(s.Select(c => string.Format("\\u{0:x4}", (int)c)).ToArray());

结果:

\u0031\u0032\u0033

在线查看它的工作情况: ideone

In .NET 4.0 中您可以省略对 ToArray 的调用。

Strings in .NET already are Unicode, so there's no need to convert them from Unicode to Unicode.

If you want to output a unicode escaped string, then try this:

string ans = string.Concat(s.Select(c => string.Format("\\u{0:x4}", (int)c)).ToArray());

Result:

\u0031\u0032\u0033

See it working online: ideone

In .NET 4.0 you can omit the call to ToArray.

负佳期 2024-12-22 09:34:16
string ans = Regex.Replace(s, ".", m => String.Format(@"\u{0:x4}", (int)m.Value[0]));
string ans = Regex.Replace(s, ".", m => String.Format(@"\u{0:x4}", (int)m.Value[0]));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文