为什么不是 `Encoding.UTF8.GetBytes(Encoding.UTF8.GetString(x))==x`

2023-12-28

在 .NET 中,为什么不是这样:

Encoding.UTF8.GetBytes(Encoding.UTF8.GetString(x))

返回任意字节数组的原始字节数组x?

It is 提及 https://stackoverflow.com/a/3946274/601758回答另一个问题,但回复者没有解释原因。


首先,正如 watbywbarif 提到的,您不应该使用==,那是行不通的。

但即使你正确地比较了数组(例如通过使用SequenceEquals()或者只是通过观察它们),它们并不总是相同的。可能发生这种情况的一种情况是x是无效的 UTF-8 编码字符串。

例如,1 字节序列0xFF不是有效的 UTF-8。那么什么是Encoding.UTF8.GetString(new byte[] { 0xFF })返回?它是 �、U+FFFD、替换字符。当然,如果你打电话Encoding.UTF8.GetBytes()对此,它不会给你回报0xFF.

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

为什么不是 `Encoding.UTF8.GetBytes(Encoding.UTF8.GetString(x))==x` 的相关文章

  • MVC 重定向到没有控制器的视图

    希望应该是一个简单的 我创建了一个通用错误视图 当整个站点的操作方法内发生异常时 我想显示该视图 我创建了一个部分页面 所有导航都位于其中 因此我不需要在此视图上使用控制器 那么如何从控制器内的操作方法重定向到它 像这样的东西 HttpPo
  • 更快的算法来计算有多少数字可以被范围内的特定整数整除

    int a b c d 0 cin gt gt a gt gt b gt gt c for int i a i lt b i if i c 0 d cout lt
  • C修改printf()输出到文件

    有没有办法修改printf为了将字符串输出到文件而不是控制台 我尝试在互联网上查找一些内容 发现了类似的电话dup dup2 and fflush这可能与此有关 EDIT 也许我不清楚 问题是这是C考试问题 问题如下 解释一个通常将字符串输
  • 使用不带参数的 Split() 时,默认分隔符是什么?

    所以我看了看String Split 今天 C 中的方法 我意识到你也可以向它传递零参数 这是我从未考虑过的 使用时默认的分隔符是什么Split 没有任何参数 如果没有值 则为空白 来源自here https msdn microsoft
  • 关闭 XDOCUMENT 的实例

    我收到这个错误 该进程无法访问文件 C test Person xml 因为它是 被另一个进程使用 IOException 未处理 保存文件内容后如何关闭 xml 文件的实例 using System using System Collec
  • 如何使用汇编获取BIOS时间?

    我正在从头开始实现一个小型操作系统 用于教育目的 现在 我想使用汇编来获取 BIOS 时间 我对此进行了很多搜索 但找不到任何代码示例来执行此操作 如果有人可以提供任何参考或代码示例或与此相关的任何内容 我将非常感激 See 时钟中断 1a
  • 如何将字节块读入结构体

    我有一个需要处理的资源文件 它包含一组文件 首先 资源文件列出了其中包含的所有文件 以及一些其他数据 例如在此结构中 struct FileEntry byte Value1 char Filename 12 byte Value2 byt
  • rand() 播种与 time() 问题

    我很难弄清楚如何使用 rand 并使用 Xcode 用 time 为其播种 我想生成 0 到 1 之间的随机十进制数 该代码为我提供了元素 1 和 2 看似随机的数字 但元素 0 始终在 0 077 左右 有什么想法吗 我的代码是 incl
  • 用 C# 制作 Vista 风格的应用程序

    我正在运行 Windows Vista 并且希望外观看起来像常规 Vista 程序 有没有关于如何构建 Vista 风格应用程序的真正好的教程 文章 我还想学习如何使用本机代码并将其转换为 C 如this http bartdesmet n
  • QThread - 使用槽 quit() 退出线程

    我想在线程完成运行时通知对象 但是 我无法让线程正确退出 我有以下代码 处理器 cpp thread new QThread tw new ThreadWorker connect tw SIGNAL updateStatus QStrin
  • 为什么重载方法在 ref 仅符合 CLS 方面有所不同

    公共语言规范对方法重载非常严格 仅允许根据其参数的数量和类型来重载方法 如果是泛型方法 则根据其泛型参数的数量进行重载 根据 csc 为什么此代码符合 CLS 无 CS3006 警告 using System assembly CLSCom
  • 数据损坏 C++ 和 Python 之间的管道

    我正在编写一些代码 从 Python 获取二进制数据 将其通过管道传输到 C 对数据进行一些处理 在本例中计算互信息度量 然后将结果通过管道传输回 Python 在测试时 我发现如果我发送的数据是一组尺寸小于 1500 X 1500 的 2
  • 无法通过 LINQ to Entities 使用某些功能?

    我正在尝试使用 LINQ 查询在项目上实现搜索功能 由于数据有时包含带有重音符号和其他符号的字符 因此我创建了一种方法来删除这些字符以进行搜索 这是我的代码 var addresses from a in db Addresses join
  • 在 .NET 中记录 StackOverflowException

    最近 我的 NET 应用程序 asp net 网站 中出现了堆栈溢出异常 我之所以知道该异常是因为它出现在我的 EventLog 中 我知道 StackOverflow 异常无法被捕获或处理 但是有没有办法在它杀死您的应用程序之前记录它 我
  • 将一个 long 转换为两个 int 以进行重构

    我需要将一个参数作为两个 int 参数传递给 Telerik Report 因为它不能接受长参数 将 long 拆分为两个 int 并在不丢失数据的情况下重建它的最简单方法是什么 使用掩蔽和移位是最好的选择 根据文档 long 保证为 64
  • 为什么 C# 接口名称前面加上“I”

    这种命名约定背后的基本原理是什么 我没有看到任何好处 额外的前缀只会污染 API 我的想法与康拉德一致response https stackoverflow com a 222502 9898与此相关的question https sta
  • 通过 cmake 链接作为外部项目包含的 opencv 库[重复]

    这个问题在这里已经有答案了 我对 cmake 比较陌生 经过几天的努力无法弄清楚以下事情 我有一个依赖于 opencv 的项目 它本身就是一个 cmake 项目 我想静态链接 opencv 库 我正在做的是我的项目中有一份 opencv 源
  • 创建带有部分的选项卡式侧边栏 WPF

    我正在尝试创建一个带有部分的选项卡式侧边栏 如 WPF 中的以下内容 我考虑过几种方法 但是有没有更简单 更优雅的方法呢 方法一 列表框 Using a ListBox并将 SelectedItem 绑定到右侧内容控件所绑定的值 为了区分标
  • 将文本从文本文件添加到 PDF 文件[重复]

    这个问题在这里已经有答案了 这是我的代码 using FileStream msReport new FileStream pdfPath FileMode Create step 1 using Document pdfDoc new D
  • 使用剪贴板 SetText 换行

    如何使用 SetText 方法添加换行符 I tried Clipboard SetText eee n xxxx 但当我将剪贴板数据粘贴到记事本中时 它没有给我预期的结果 预期结果 eee xxxx 我怎样才能做到这一点 Windows

随机推荐

  • 如何在 Android 中显示启动屏幕?

    我想在我的应用程序加载时显示启动屏幕 这是我的Java code ImageView splash ImageView this findViewById R id splashscreen splash postDelayed new R
  • Chrome - 注册表中的证书设置

    对于 Webdrivertest 我使用 Chrome 但始终会查询一个 SSL 证书 使用 Google Chrome 设置 无法处理它 所以我读到有一种关于注册表的方法 所以我尝试了各种组合 HKEY LOCAL MACHINE Sof
  • 如何将数据框中的每一列重新调整为 0-100 范围? (在 r 中)

    我试图让我的数据框的所有列都具有相同的比例 现在我有这样的东西 其中 a 处于 0 1 等级 b 处于 100 等级而 c 处于 1 5 等级 a b c 0 89 4 1 93 3 0 88 5 我怎样才能把它达到这样的100级 a b
  • 颤振设计曲线布局作为单个小部件

    Here https stackoverflow com questions 56820631 flutter design curves layout解决了有关设计此布局的问题 我在使用它时遇到问题 因为屏幕右侧的这条曲线不是小部件 当我
  • 错误“Junit 测试中没有公共 TestCase(String name) 或 TestCase()

    我是 junit test android 的初学者 我正在跟进本教程 http developer android com training activity testing activity basic testing html但得到这
  • 从 HTML5 文件 Api 加载的图像中检索 EXIF 图像元数据?

    我正在使用 HTML5文件 API 和文件读取器 http html5demos com file api HTML div div JS
  • 重复的 Apple APNS 推送通知?

    我们在应用程序上使用 APNS 一段时间以来没有发生太多事件 突然我们的用户报告多次收到相同的推送通知 我已经确认 乏味地 我们的服务器只向 Apple 发送一次通知有效负载 但通知会在横幅和通知中心生成 2 个 有时是 3 个 相同的警报
  • react-native-image-picker - 重建后的持久存储

    我已经在屏幕上敲击了一段时间了 尽管我在 git 或 stackoverflow 上找到了所有信息 但还是无法让它工作 我想要实现的目标 所选图像的持久性 来自库或相机 当我重建我的应用程序时 这意味着当我运行时也持久化react nati
  • IOS静态库产品一直是红色的

    我已经为此苦苦挣扎了几天 当我在 XCode 4 中的 IOS 下创建一个新的静态库项目时 我遇到了一个问题 无论是否添加文件作为标头或进行编译 我都能够成功构建 但 a 文件始终为红色 这种情况在调试和发布中都会发生 我读过类似的问题 但
  • Vue js 组合两个组件中的元素

    我正在尝试构建电子商务类型应用程序的结帐页面 在结账时 我有一个来自数据库的订单项目列表 每个订单项目都有价格 数量 您可以选择并组合这些 此外 我必须在其他地方呈现一个包含 插件 的列表到您的购物篮中 这也是 OrderItems 相同的
  • 如何在 Java 中实现抽象静态方法?

    关于无法包含静态抽象 Java 方法存在许多问题 还有很多关于此问题的解决方法 设计缺陷 设计强度 但我找不到任何针对我将很快说明的具体问题的信息 在我看来 创建 Java 的人以及相当多使用 Java 的人并不像我和其他许多人那样将静态方
  • Django DateTimeField() 和 timezone.now()

    好的 当我运行功能测试时出现奇怪的时区问题 Django 1 4 Python 2 7 MySQL 上的 DateTimeField 中的毫秒是否被截断 这是我唯一的理论 模型文件 from django db import models
  • 如何在android中使用opencv从另一帧中减去一帧

    我正在处理视频的帧 我想从其他帧中减去一帧以找出差异 但我不知道如何继续 我尝试将位图帧转换为垫子 然后减去它们 但它不起作用 我正在使用 opencv 2 4 3 作为 mat 函数 谁能告诉我该怎么做 如果可能的话用代码片段进行解释 我
  • 检查 PL/SQL 块中的表中是否存在行的正确方法

    昨天我在写一些任务 突然发现我真的不知道正确且被接受的方式当我使用 PL SQL 时检查表中是否存在行 例如 让我们使用表 PERSON ID Name 显然我can t do 除非有一些秘密方法 比如 BEGIN IF EXISTS SE
  • 将 pnputil 输出解析为特定类的已发布名称

    在 PowerShell 中 输入 pnputil exe e 后 我会得到如下驱动程序信息列表 我需要从列表中获取班级监视器的发布名称并将 oem8 inf 存储到 monitor name 我可以使用哪个命令来搜索class monit
  • gganimate 绘图未显示并保存一堆 .png

    我正在尝试复制一个简单的例子gganimate from here https gganimate com articles gganimate html 问题很简单ggplot部分工作正常 但是当我添加时transition states
  • Apple 未收到带有外国口音字符的推送通知

    我正在发送推送通知 当消息包含外来字符 在我的例子中是土耳其语 时 如 该消息不会到达设备 这是我的代码 message TH S is push passphrase mypass ctx stream context create st
  • C# 中的 RC4 128 位加密

    我需要执行 128 位 RC4 加密 我使用 NET 和 C 是否有内置函数可以执行此操作 如果没有 我发现这个函数可以做到这一点 public void RC4 ref Byte bytes Byte key Byte s new Byt
  • 如何递归配置 svn status 来隐藏被忽略的文件?

    我的目录结构如下所示 project app1 app2 settings py 从内部project目录 我跑了svn propedit svn ignore 这只忽略项目目录中的文件 不包括其子目录 我可以从每个文件夹中再次运行 svn
  • 为什么不是 `Encoding.UTF8.GetBytes(Encoding.UTF8.GetString(x))==x`

    在 NET 中 为什么不是这样 Encoding UTF8 GetBytes Encoding UTF8 GetString x 返回任意字节数组的原始字节数组x It is 提及 https stackoverflow com a 394