从转义 ASCII 序列中读取 UTF8/UNICODE 字符

2024-03-26

我的文件中有以下名称,我需要将该字符串读取为 UTF8 编码的字符串,因此:

test_\303\246\303\270\303\245.txt

我需要获得以下信息:

test_æøå.txt

你知道如何使用 C# 来实现这一点吗?


假设你有这个字符串:

string input = "test_\\303\\246\\303\\270\\303\\245.txt";

IE。字面上地

test_\303\246\303\270\303\245.txt

你可以这样做:

string input = "test_\\303\\246\\303\\270\\303\\245.txt";
Encoding iso88591 = Encoding.GetEncoding(28591); //See note at the end of answer
Encoding utf8 = Encoding.UTF8;


//Turn the octal escape sequences into characters having codepoints 0-255
//this results in a "binary string"
string binaryString = Regex.Replace(input, @"\\(?<num>[0-7]{3})", delegate(Match m)
{
    String oct = m.Groups["num"].ToString();
    return Char.ConvertFromUtf32(Convert.ToInt32(oct, 8));

});

//Turn the "binary string" into bytes
byte[] raw = iso88591.GetBytes(binaryString);

//Read the bytes into C# string
string output = utf8.GetString(raw);
Console.WriteLine(output);
//test_æøå.txt

我所说的“二进制字符串”是指仅由代码点为 0-255 的字符组成的字符串。因此,这相当于一个穷人的byte[]在哪里 您检索索引处字符的代码点i, 代替byte值在一个byte[]在索引处i(这就是我们几年前在 javascript 中所做的)。因为 iso-8859-1 映射 恰好前 256 个 unicode 代码指向单个字节,它非常适合将“二进制字符串”转换为byte[].

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从转义 ASCII 序列中读取 UTF8/UNICODE 字符 的相关文章

随机推荐

  • 如何按哈希值之一对哈希引用数组进行排序?

    首先 请原谅我生锈的 Perl 我正在尝试修改 Bugzilla 的 whine pl 以生成按严重性排序的错误列表 所以它给了我一个哈希引用数组 每个哈希值都包含有关特定错误的大量信息 ID 受让人 严重性等 我想按严重性对数组进行排序
  • 旧的 Firebase Analytics 事件报告发生了什么?

    最近的 Firebase 控制台更新后 无法找到按内容类型列出的 select content 事件的报告 以及按 item id 找到的选定内容类型的报告 我使用这些报告来研究我的应用程序行为 方法是记录它们 Analytics logE
  • 仅通过一个 SocketChannel 发送多条消息

    读完本教程后 http rox xmlrpc sourceforge net niotut http rox xmlrpc sourceforge net niotut 这是关于编写非阻塞服务器和客户端 我阅读了NIO部分 跳过了SSL部分
  • 根据帖子内容添加 WordPress 类别

    我正在开发一个 Wordpress 网站 用户可以登录该网站并发帖 我想为他们的帖子添加一些功能 基本上 我想为用户提供使用保留字符为帖子分配类别的功能 因此 如果用户发布 我正在学习 programming 该帖子将被分配到编程类别 在
  • CSS水平滚动

    我正在尝试创建一个 div 包含一系列只能水平滚动的照片 它应该看起来像这样LINK http cssdesk com L6Dsa 然而 上述只能通过指定宽度来实现 div 其中包含照片 因此它们不会 自动换行 如果我不设置宽度 它看起来像
  • Flask 在哪里寻找图像文件?

    我正在使用 Flask 设置本地服务器 我当前想要做的就是使用index html 页面中的img 标签显示图像 但我不断得到error GET http localhost 5000 ayrton senna movie wallpape
  • 无法解析 Android 上的 MapActivity 类

    我有一个包含 11 种不同活动的应用程序 这些活动之一是 MapActivity 的扩展 它是用于数据可视化的地图 要进入此活动 用户必须首先完成启动活动 然后完成其他 3 个活动 启动MapActivity的代码是 Intent i ne
  • 自定义对话框太小

    我有一个实现自定义对话框的 Android 活动 应用程序运行正常 但对话框太小 我想显示更大的对话框 我怎样才能实现这一点 这是我的布局 xml
  • 在 system() 函数中使用变量 C++

    string line ifstream myfile aaa txt getline myfile line system curl exe b cookie txt d test line http example com http e
  • 如何清除node js中清除浏览器cookie的req.session?

    我在用 express 4 14 0 with express session用于保存用户名 用户登录后 我会将用户名保存在req session authorizedUser username将其显示在应用程序标题中 当浏览器历史记录被清
  • Vim 中的任务标签

    关于任务标签的两个问题 Vim 中还提供哪些其他任务标签 例如 TODO 有没有办法像 Eclipse IDE 一样制作自定义任务标签 对于自定义标签 我在 vimrc 中使用以下内容 您应该能够根据您的需要进行调整 if has auto
  • 跨平台上的 AES cbc 填充加密/解密(.net c# 和代号 one bouncy castle)

    加密 解密不能在跨平台上工作 我已使用此链接使用代号一内的充气城堡 AES 密码来加密 解密文本 J2ME 中使用 Bouncycastle 进行 AES 加密 解密的示例 https stackoverflow com questions
  • 从 C# winforms 应用程序将输出写入控制台[重复]

    这个问题在这里已经有答案了 可能的重复 如何在表单应用程序中显示控制台输出 窗口 https stackoverflow com questions 4362111 how do i show console output window i
  • 如何追踪 Ruby 代码中的内存泄漏?

    Question 我正在调试 rake 任务中的内存泄漏 我想查看以下调用堆栈 有生命的物体 最初分配这些对象的对象或行是什么 ruby prof 可以做到这一点吗 如果没有 我应该使用什么工具 Setup Gems 导轨 3 2 16 事
  • 在 Swift 中使用 UIAlertController 发生内存泄漏

    我使用这个简单的代码呈现一个简单的 UIViewController IBAction func addNewFeed sender UIBarButtonItem var alertView UIAlertController UIAle
  • 使用 JAR 加载 log4j.properties [重复]

    这个问题在这里已经有答案了 我有一个包含以下清单的 jar 文件 Manifest Version 1 0 Created By 1 7 0 07 Oracle Corporation Main Class test Main Class
  • Sklearn.KMeans:如何避免内存或值错误?

    我正在研究图像分类问题 并且正在创建一个词袋模型 为此 我提取了所有图像的 SIFT 描述符 并且必须使用 KMeans 算法来找到用作我的词袋的中心 这是我拥有的数据 图片数量 1584 SIFT 描述符的数量 32 个元素的向量 571
  • JAXB-XJC X属性访问器

    根据 JAXB 规范http jaxb java net 2 2 4 docs xjc html http jaxb java net 2 2 4 docs xjc html如果您想运行 JAXB XJC 编译器 您可能传递的扩展 参数之一
  • OpsHub VSO 迁移 - DataValidationException - 测试套件已存在

    在 OpsHub 从本地 TFS 2013 3 服务器迁移到 VSO 期间 我收到来自 OpsHub 的错误消息 com opshub exceptions DataValidationException OpbsHug 012017 名称
  • 从转义 ASCII 序列中读取 UTF8/UNICODE 字符

    我的文件中有以下名称 我需要将该字符串读取为 UTF8 编码的字符串 因此 test 303 246 303 270 303 245 txt 我需要获得以下信息 test txt 你知道如何使用 C 来实现这一点吗 假设你有这个字符串 st