如何从字节数组创建String对象
byte arr[MAX_SIZE]; // Java
Run Code Online (Sandbox Code Playgroud)
其中一个数组元素是一个C null终止字节?它就像打电话一样简单
String str = new String( arr );
Run Code Online (Sandbox Code Playgroud)
String构造函数是否知道自动停止在null终止字符处?空字节后的任何字节都是(可能)垃圾字符,我不想包含在字符串中.解析包含未知长度字段的字节数组的最后一个响应建议循环遍历数组并手动查找空终止字符,但我想知道String构造函数是否会自动执行此操作.我还假设系统的默认字符集将用于所有目的.
我想使用WebSocket传输二进制数据,但您只能使用WebSockets传输UTF-8字符串.
使用base64对其进行编码是一种选择,但我的理解是,当您的文本可能从一种格式转换为另一种格式时,最理想的是base64.在这种情况下,我知道数据将始终是UTF-8,那么有没有更好的方法来编码UTF-8字符串中的二进制数据而不支付base64的33%大小溢价?
这个问题主要是学术,为二进制的支持可能会被添加到最终的WebSocket和Base64是在此期间完全cromulent替代.
我正在写一个小程序,它应该在屏幕上显示一个☻字符.该计划如下:
#include <stdio.h>
main()
{
printf("?\n");
}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行这个程序时,我得到了输出
?ÿ?
Run Code Online (Sandbox Code Playgroud)
为什么我得到这个输出,我该怎么做才能得到我想要的输出?
这样做有什么区别:
name.as_bytes()
Run Code Online (Sandbox Code Playgroud)
还有这个:
CString::new(name)?.as_bytes_with_nul()
Run Code Online (Sandbox Code Playgroud)
我希望以一种我可以通过网络轻松发送它们的方式从name(它String)获取字节,我不确定CString这里是否有必要.