协议缓冲区和 UTF-8

2024-04-26

编码方案/多操作系统和 Endian-nes 的历史导致了对所有形式的字符串数据(即所有字母表)进行编码方面的混乱;因此,协议缓冲区仅处理其字符串类型中的 ASCII 或 UTF-8,并且我看不到任何接受 C++ wstring 的多态重载。那么问题是如何将 UTF-16 字符串获取到协议缓冲区中?

大概我需要在应用程序代码中将数据保留为 wstring,然后在将其填充到(或从中提取)消息之前执行 UTF-8 转换。最简单的 Windows/Linux 可移植方法是什么(来自受良好支持的库的单个函数调用将让我很开心)?

数据将源自各种 Web 服务器(Linux 和 Windows),最终到达 SQL Server(以及可能的其他端点)。

-- 编辑1--

Mark Wilkins 的建议似乎符合要求,也许有该库经验的人可以发布一个代码片段——从 wstring 到 UTF-8——这样我就可以衡量它有多容易。

-- 编辑2 --

更是如此。我将进一步研究增强序列化。


Boost Serialization 库包含一个UTF-8 codecvt 方面 http://www.boost.org/doc/libs/1_40_0/libs/serialization/doc/codecvt.html您可以使用它来将 unicode 转换为 UTF-8 并返回。文档中甚至有一个例子就是这样做的。

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

协议缓冲区和 UTF-8 的相关文章

随机推荐

  • 使用函数更改指针包含的地址

    如果我声明了一个指针p as int p 在主模块中 我可以更改包含的地址p通过分配p a where a是另一个已经声明的整型变量 我现在想通过使用以下函数来更改地址 void change adrs int q int newad q
  • 删除两个列表之间的公共元素[重复]

    这个问题在这里已经有答案了 可能的重复 Python列表减法运算 https stackoverflow com questions 3428536 python list subtraction operation 我想删除两个列表之间的
  • 浏览器不渲染 WOFF 字体 (@font-face)

    好的 我有一个无法解决的问题 我正在尝试研究 WOFF 字体在 Internet Explorer 10 中的用法 我从下载了套件字体松鼠 http www fontsquirrel com fontface 并根据包含的 CSS 和 HT
  • 嵌入来自 tiktok 的视频

    我有当前的作品 我想要的是获取视频的 URL 但它只显示未样式化的文本 async function start let url https www tiktok com tiagogreis video 68300596442332234
  • Wordpress 和 Drupal SSO/单点登录

    我已经在 Wordpress 中制作了我的前端网站 这对我来说很好 我想在 Drupal 中创建会员 员工区域 因为它具有更多 Google 文档和 Mediawiki 功能 我想知道我是否可以在两个站点之间共享登录信息 因此如果我在 Wo
  • 如何获取方法内部传递的参数的 nameof() ?

    我正在为我的项目寻找解决方案 我有一个Dictionary
  • C# Winforms 不规则的 Windows [重复]

    这个问题在这里已经有答案了 如何使用 WinForms 和 C 创建不规则形状的窗口 有几种不同的方法可以实现这一目标 一是用用TransparencyKey 正如尼夫勒在帖子中指出的那样 另一种是分配一个Region http msdn
  • 将 SQLite 与 Blazor WASM 结合使用有什么好处?

    我正在看这个Steve Sanderson 的视频演示了如何将 SQLite 与 Blazor Web Assembly 结合使用 https www youtube com watch v kesUNeBZ1Os我正在考虑在我的一个项目中
  • Javascript作用域变量可以切换大小写吗?

    在 C 中 您可以将变量的范围限定为 switch case 例如this https stackoverflow com a 2101514 773263 使用 javascript 我使用以下命令获得意外的令牌 const i 1 sw
  • Ruby 使用 JSON 序列化结构

    我正在尝试将一个简单的结构序列化为 JSON 它工作正常 但我无法让它从 JSON 创建该结构的实例 我正在尝试这样做 require rubygems require json Person Struct new name age jso
  • python print() 函数实际上是做什么的?

    我正在看这个question https stackoverflow com questions 1979171 how can i escape xff xfe to a readable string并开始想知道什么是print实际上确
  • java中.this和.class的含义

    假设我们有一个类名称 Home 有什么区别主页 this and 家庭班 它们指的是什么 主页 this Home this指的是当前实例Home class 该表达式的正式术语似乎是合格了这个 http java sun com docs
  • 如果ViewData有ViewBag,为什么TempData没有TempBag?

    为什么 TempData 没有像 ViewData 那样的动态字典对象 之所以没有 是因为没有人费心去实施它 但这是很容易做到的 例如 作为扩展方法 不幸的是 NET 尚不支持扩展属性 因此您无法完全获得您可能希望的语法 public cl
  • 重新格式化双向条形图以匹配示例

    我生成了这个条形图 使用此代码 s level margins fluid margins vp Volume 0 0 1L 0 718 0 690 2L 0 501 0 808 5L 0 181 0 920 MAP 0 0 64 0 43
  • C 中每个块复制一个文件块

    我试图将文件分成 x 个大小为 y 以字节为单位 的块 以便我可以单独复制每个块 我怎样才能做到这一点 尝试使用fread http www manpagez com man 3 fread char buffer ysize fread
  • 使用数据表中的“selectAll”按钮搜索后选择所有可见行

    我已经初始化了一个具有 id 的数据表example像这样 var table example DataTable aaSorting 4 asc select true dom Bfrtip buttons excelHtml5 exte
  • 当更新可用时,手动安装的 apk(不是从 Play 商店)会收到通知吗?

    我想在平板电脑上安装 apk 知道怎么做 我的平板电脑会收到来自 Play 商店的通知吗 该更新已在 Play 商店中准备就绪 我应该安装它吗 仅当满足以下两个条件时 您才会收到更新 在 Google Play 已安装的应用程序 选项卡中看
  • Flash 影片的 Div Z-Index 问题

    我有两个简单的 HTML div 一个包含 flash 电影 另一个 div 包含简单文本 现在我的问题是我必须将文本 div 放到 flash 电影 div 上 我正在做的是将两个 div 的位置设置为 CSS 中的 Absolute 并
  • 如何为 SonarQube 扫描配置 Jenkins 管道

    我正在尝试为我的项目配置詹金斯管道 但这里缺少一些东西 如果有人可以指出我做错了什么 下面是管道脚本 node stage SonarQube analysis requires SonarQube Scanner 2 8 def scan
  • 协议缓冲区和 UTF-8

    编码方案 多操作系统和 Endian nes 的历史导致了对所有形式的字符串数据 即所有字母表 进行编码方面的混乱 因此 协议缓冲区仅处理其字符串类型中的 ASCII 或 UTF 8 并且我看不到任何接受 C wstring 的多态重载 那