将字符串转换为字节数组,然后返回原始字符串

2024-01-06

在Java或Android中是否可以将字符串转换为字节数组,然后将其转换回原始字符串?

我的目标是将一些字符串发送到微控制器 (Arduino) 并将其存储到 EEPROM(这是唯一的 1 KB)中。我尝试使用MD5 http://en.wikipedia.org/wiki/MD5哈希,但似乎这只是单向加密。我可以做什么来处理这个问题?


我建议使用 string 的成员,但是使用显式编码:

byte[] bytes = text.getBytes("UTF-8");
String text = new String(bytes, "UTF-8");

通过使用显式编码(以及支持所有 Unicode 的编码),您可以避免仅调用的问题text.getBytes() etc:

  • 您显式地使用特定的编码,因此您知道稍后要使用哪种编码,而不是依赖于平台默认值。
  • 您知道它将支持所有 Unicode(而不是 ISO-Latin-1)。

编辑:尽管 UTF-8 是 Android 上的默认编码,但我肯定会明确说明这一点。例如,这个问题只说“在 Java 或 Android 中”——所以代码最终完全有可能在其他平台上使用。

基本上考虑到普通的Java平台can有不同的默认编码,我认为最好是绝对明确的。我见过太多人使用默认编码并丢失数据来承担这种风险。

编辑:在我的匆忙中,我忘记提及您不必使用编码name- 你可以使用Charset反而。使用Guava http://guava-libraries.googlecode.com I'd really use:

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

将字符串转换为字节数组,然后返回原始字符串 的相关文章

随机推荐

  • git克隆,忽略文件

    我想克隆一个 GitHub 存储库 其中包含一个巨大的 exe 文件 为什么 我对 exe 文件的使用为零 而且它比其他所有文件的总和要大得多 有没有办法在克隆文件时忽略该文件 我的猜测是 如果我要求作者制作一个无可执行文件的分支 我会更幸
  • Python:从父文件夹导入文件

    现在我知道这个问题已经被问过很多次并且我已经查看了其他线程 到目前为止没有任何效果 从使用sys path append 只需导入foo 我有一个 python 文件希望导入一个文件 位于其父目录中 您能帮我弄清楚我的子文件如何成功导入其父
  • ARM 部署:获取 Azure Function API 密钥

    作为流分析部署解决方案的一部分 我想通过例如检索 ARM 模板中的 Azure 函数应用程序的 API 密钥listkeys 函数 有没有办法在 ARM 部署期间分别通过 ARM 模板检索此密钥 如果是 如何检索 Thanks Azure
  • 使用谷歌地图获取附近的地点

    我正在尝试使用谷歌地图来查找我当前位置的附近地点 我在 Google Developer Console 中创建了一个项目并获得了 ios APIkey 和 Server APIkey 我还启用了适用于 iOS 的 Google Place
  • C99/C11 限制类型限定符是否对没有定义的函数意味着什么?

    假设我们有一个函数声明 但我们无权访问其定义 void f int restrict p int restrict q int restrict r 由于我们不知道如何访问指针 因此我们无法知道调用是否会触发未定义的行为 即使我们传递相同的
  • OpenGL顶点缓冲区混淆

    有人愿意解释一下之间的区别吗顶点缓冲区 a 顶点数组 a 顶点缓冲区对象 and a 顶点数组对象 我什至不确定这些是否都是代表不同事物的术语 但我已经看到它们都出现在 OpenGL 规范中 我知道一个顶点缓冲区只包含顶点而没有其他内容 一
  • 如果文件扩展名为 jpg 或 png,如何使用 chrome.downloads.onDeterminingFilename 更改下载的文件名?

    我该如何使用chrome downloads onDeterminingFilename https developer chrome com extensions downloads event onDeterminingFilename
  • 进度条显示已播放的音乐量

    假设我使用mp3play播放mp3文件的模块 并使用ttk Progressbar 我想显示播放音乐的数量 持续时间 有没有代码可以实现 我还想要一个计时器 a 来显示音乐播放的持续时间 import ttk import mp3play
  • 如何在 angularjs 中创建和更新 JSON 文件?

    我只想创建一个简单的应用程序 它使用 AngularJS 创建 更新和删除 JSON 文件中的项目 我在网上查看过 只找到了使用 JavaScript 对象来编辑或删除 JSON 类型数据的示例 但我想在 AngularJS 中使用 JSO
  • scala 动态多维可变数组,如数据结构

    有没有办法在Scala中构建动态多维数组 我知道 Scala 中的数组必须按照其大小和维度进行初始化 所以我不希望这样 数据结构应该是动态的 我尝试用列表中的列表来构建它 但我在某种程度上迷失了自己 有很多不同的类型 也许我只是没有找到合适
  • Go,tcp打开文件太多调试

    这是一个简单的 Go http tcp 连接测试脚本 func main ts httptest NewServer http HandlerFunc func w http ResponseWriter r http Request fm
  • 再次:在函数内设置环境

    已经有很多关于范围 环境和功能的讨论 参见例如here https stackoverflow com questions 23234640 why do variable lookups in the body of function a
  • 分页符在 Node js 中的 html-pdf 转换器中不起作用

    I am using html pdf 2 2 0 module to convert my html in pdf I am using table with multiple rows so I want to use page bre
  • ruby 布尔运算符或 ||差异[重复]

    这个问题在这里已经有答案了 可能的重复 Ruby 之间的区别和 或 https stackoverflow com questions 2083112 ruby difference between and or 在 ruby 中 不是 o
  • 导航到某个路径后清除位置状态

    我正在使用反应路由器browserHistory导航到路径 browserHistory push pathname mycomponent state someValue value 所以这将导航到 mycomponent 一旦我到达我的
  • 向 xib 中的“主视图”添加约束

    我有一个UIView在 xib 文件中定义 我需要设置translatesAutoresizingMaskIntoConstraints NO 这意味着框架不会转换为约束 因此我需要自己设置尺寸约束 我创建了一个工作类别方法UIView N
  • Sticky 命令如何影响 Tkinter 中的 python 代码?

    from tkinter import from tkinter import ttk root Tk root rowconfigure 0 weight 1 root columnconfigure 0 weight 1 frame t
  • 非全屏 UINavigationController

    是否可以以不使用整个窗口的方式使用 UINavigationController 我尝试过设置它的视图框架以及将其视图添加到另一个 非全屏 视图而不是窗口 但似乎都不起作用 您不能直接更改 UINavigationController 或其
  • 不要重写静态 css/js/img 文件

    我试图让我的 htaccess 文件不重写我的静态文件 js css images 这是我当前的 htaccess 文件 RewriteEngine on RewriteCond SCRIPT FILENAME f RewriteCond
  • 将字符串转换为字节数组,然后返回原始字符串

    在Java或Android中是否可以将字符串转换为字节数组 然后将其转换回原始字符串 我的目标是将一些字符串发送到微控制器 Arduino 并将其存储到 EEPROM 这是唯一的 1 KB 中 我尝试使用MD5 http en wikipe