Dart 如何将字符串转换为二进制

Dart 如何将字符串转换为二进制,dart,Dart,嘿,在将字符串转换为二进制字符串的过程中是否有省道构建 打印(“a”.toBinary())=>0110001 或者你认为什么是最好的方式呢?你需要说出你需要的格式。字符串是16位整数的序列。在某些设置中,它们被解释为UTF-16,其中一些整数(代码单元)表示单个代码点,其他代码点需要两个代码单元。在其他设置中,“字符”是不止一个代码点。因此,要将字符串转换为位,您需要准确地了解如何解释字符串 这里,你只为A写八个位,而不是,例如,“000000000个110001”,所以我假设你只考虑ASCI

嘿,在将字符串转换为二进制字符串的过程中是否有省道构建 打印(“a”.toBinary())=>0110001


或者你认为什么是最好的方式呢?

你需要说出你需要的格式。字符串是16位整数的序列。在某些设置中,它们被解释为UTF-16,其中一些整数(代码单元)表示单个代码点,其他代码点需要两个代码单元。在其他设置中,“字符”是不止一个代码点。因此,要将字符串转换为位,您需要准确地了解如何解释字符串

这里,你只为A写八个位,而不是,例如,“000000000个110001”,所以我假设你只考虑ASCII字符串。 让我们假设它都是ASCII,并且您想要八位结果:

var binstring = string.codeUnits.map((x) => x.toRadixString(2).padLeft(8, '0'))
                                .join();

听起来您正在寻找javascript的
String.charCodeAt
方法的Dart等价物。在Dart中,有两个选项,这取决于您是要为整个字符串指定字符代码,还是只指定字符串中的单个字符

String.codeunit
是一种在字符串中给定索引处为字符返回int的方法。您可以按如下方式使用它:

String str='hello';
印刷品(str.codeUnitAt(3))//108
您可以使用
String.codeUnits
将整个字符串转换为其整数值:

String str='hello';
打印(str.codeUnits)//[104, 101, 108, 108, 111]
如果需要将这些整数转换为相应的二进制字符串,则需要使用参数为2的us
int.toRadixString

String str='hello';
List binarys=str.codeUnits.map((int-strInt)=>strInt.toRadixString(2));
打印(二进制)//(1101000, 1100101, 1101100, 1101100, 1101111)
尝试以下操作:

import 'dart:core';

void main() {
    String name = "hello";
    for(int binary in name.codeUnits)print(binary.toRadixString(2));
}

为了什么?客户端还是服务器端?如果对双方都有效就好了如果答案符合您的要求,这应该不是问题。我不确定你的意思是“toeg a binarystring”。啊,k;)是的,答案很完美。在UTF-16中,有些代码点需要一个16位代码单元,有些需要两个。确认,是的。我写的东西听起来好像他们都需要两个代码单元,而不仅仅是其中的一部分。我要换个说法谢谢你是的我只是在考虑ascii。两个答案我都喜欢,虽然我喜欢一行,但我给另一行打勾是因为分步描述:)还是要感谢我的问题更多的是从代码单元到二进制(toRadixString)。。谢谢