[英]Dart is not printing hex string
我從 tcp/ip 套接字獲得了字符串\x01\x01
,當我嘗試將其打印到控制台時,沒有 output 即將到來
void main() {
var out = "\x01\x01";
print("printing out as --> $out <--");
final runes = out.runes.toList();
print(runes);
}
它給出了 output 作為
printing out as --> <--
[1, 1]
dart焊盤鏈接: https://dartpad.dev/?id=854e4479bfec03d7e8fd40621c845567
我嘗試使用十六進制 package並且它給出了Non-hex character detected
錯誤。
問題。
我的套接字客戶端如下
socket.listen(
// handle data from the server
(Uint8List data) async {
var serverResponse = String.fromCharCodes(data);
print('Server: $serverResponse');
final runes = serverResponse.runes.toList();
print(runes);
},
編輯
輸入b'\x01\x01'
來自 python 套接字服務器(我無法修改),並且根據這個答案,這是一個有效的十六進制字符串。
要顯示六邊形,您必須像這樣轉義字符:
var out = '\\x01\\x01';
這會奏效。
我懷疑您誤解了服務器發送的內容。
鑒於您沒有說明服務器語言,我猜想 `ab = b'\x01\x01' 生成一個包含兩個字節的數組,兩個字節的值都為 1。
如果將其視為 ASCII 值,則 1 是不可打印字符。
因此,您需要遍歷數組並將每個字節轉換為合適的視覺格式。
這可能意味着當您看到 1 時,您會打印 x01。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.