Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >TypeError: QByteArray中预期长度为1的字节还是ASCII字符串?

TypeError: QByteArray中预期长度为1的字节还是ASCII字符串?
EN

Stack Overflow用户
提问于 2016-01-19 16:42:03
回答 1查看 2K关注 0票数 3

我希望这能奏效。但事实并非如此。我做错什么了?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    from  PyQt5.QtCore import  QByteArray

    str = 'foobar'
    b = bytes(str, 'UTF-8')

    print (b)
    print (len(b))

    arr = QByteArray(len(b), b)

但我明白:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
b'foobar'
6
Traceback (most recent call last):
  File "pyqt_wtf_again.py", line 9, in <module>
    arr = QByteArray(len(b), b)
TypeError: bytes or ASCII string of length 1 expected

这样不就行了吗?

EN

回答 1

Stack Overflow用户

发布于 2022-08-10 12:59:55

下面是来自QByteArray的C++ Qt文档构造函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
QByteArray(QByteArray &&other)
QByteArray(const QByteArray &other)
QByteArray(qsizetype size, char ch)
QByteArray(const char *data, qsizetype size = -1)

第三个是您正在使用的,但这需要一个字符,而不是字符串。如果您将代码更改为

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    from  PyQt5.QtCore import  QByteArray

    str = 'f'
    b = bytes(str, 'UTF-8')

    print (b)
    print (len(b))

    arr = QByteArray(len(b), b)

它没有问题,因为f是一个单一的字符。PyQt只是C++ Qt的一个接口,所以我认为关于python的QByteArray文档只是缺少显示这个构造函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34889572

复制
相关文章
C#字符串(字节)的长度
顺便看一下Sql Server中char nchar varchar  nvarchar
aehyok
2018/09/11
5.2K0
C#字符串(字节)的长度
Oracle中ascii为0的陷阱
墨墨导读:本文来自墨天轮读者投稿,ascii0是个空字符,如果将这个字符插入到oracle数据库中会是什么现象,是null吗?
数据和云
2020/10/27
8160
Oracle中ascii为0的陷阱
MySQL中字节、编码、长度、值的关系 原
0.一个汉字占多少字节与编码有关:          UTF-8:一个汉字=3个字节             GBK:一个汉字=2个字节  1.varchar(n),char(n)表示n个字符,无论汉字和英文,MySQL都能存入n个字符,仅是实际字节长度有所区别
wuweixiang
2018/08/14
2.6K0
MySQL中字节、编码、长度、值的关系
                                                                            原
Java中的字符串的最大长度
看String的源码可以看出来,String实际存储数据的是char value[],数组的长度是int类型,
用户8554325
2023/03/10
3.8K0
Java中的字符串的最大长度
Qt 中 QString 和 QByteArray
QString 是 Qt 内部的一种字符串数据类型,QString 支持多字节编码(unicode)的一个字符串类。在程序和网络之间传输数据时,其他的程序和网络另一端的程序是不能识别他这种数据类型的。所以要想将 QString 类型的数据保存到文件或发送到网络,需要转换成 QByteArray 类型才可以。
我与梦想有个约会
2023/10/20
5250
JS中字符串的长度计算、字符串截取
function SubstrDemo(){ var s; // 声明变量。 var s = “The rain in Spain falls mainly in the plain.”; return(s.length); }
全栈程序员站长
2022/08/25
6.2K0
2021-06-30:给定长度为m的字符串aim,以及一个长度为n
2021-06-30:给定长度为m的字符串aim,以及一个长度为n的字符串str ,问能否在str中找到一个长度为m的连续子串, 使得这个子串刚好由aim的m个字符组成,顺序无所谓, 返回任意满足条件的一个子串的起始位置,未找到返回-1。
福大大架构师每日一题
2021/06/30
4090
2021-06-30:给定长度为m的字符串aim,以及一个长度为n
字节|字符、字段类型长度
double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99;
Carl feng
2023/04/28
1.7K0
java中 xml 问题 :1 字节的 UTF-8 序列的字节 1 无效。
根本原因是: The cause of this is a file that is not UTF-8 is being parsed as UTF-8. It is likely that the parser is encountering a byte value in the range FE-FF. These values are invalid in the UTF-8 encoding. 就是说字符编码在UTF-8中有特殊含义,或者是没用正确转换过来。 解决方案: 第一,可以直接在XML文
小小明童鞋
2018/06/13
2.6K0
有趣的面试题:Go语言字符串的字节长度和字符个数
其实这并不是一道面试题,是我在日常开发中遇到的一个问题,当时场景是这样的:后端要对前端传来的字符串做字符校验,产品的需求是限制为200字符,然后我在后端做校验时直接使用len(str) > 200来做判断,结果出现了bug,前端字符校验没有超过200字符,调用后端接口确一直是参数错误,改成使用len([]rune(str)) > 200成功解决了这个问题。具体原因我们在文中揭晓。
Golang梦工厂
2022/07/08
5530
有趣的面试题:Go语言字符串的字节长度和字符个数
Python 中字符串的最大长度是多少?
Python 中支持的字符串的最大长度取决于系统上可用的内存量以及正在使用的 Python 版本的实现限制。在 Python 的默认实现(即 CPython)中,字符串作为字符数组存储在内存中,最大长度限制为 2⁶³ - 1 字节,即近 9 万 TB。但是,由于 CPython 实现字符串的方式,此限制可能会有所不同,具体取决于字符串包含的字符。
很酷的站长
2023/08/11
7680
Python 中字符串的最大长度是多少?
字节码:ASCII编码:单字节编码,ANSI编码:多字节编码,UNICODE编码:宽字节编码
字符是人们常用的一些记号,比如”1”, “汉”, “お”,”℃”等等,包括各种语系的语言和一些符号都可以被称为字符。 字节是计算机存储数据的存储单元,是一个8位的二进制数,所以最多只能表示256个数字(0-255)。 编码是大家对计算机如何使用字节来表示一个字符的约定,可分为ASCII编码,ANSI编码(本地化编码),UNICODE编码(国际化编码)三种。
学到老
2019/02/14
4.3K0
字节码:ASCII编码:单字节编码,ANSI编码:多字节编码,UNICODE编码:宽字节编码
字符是人们常用的一些记号,比如”1”, “汉”, “お”,”℃”等等,包括各种语系的语言和一些符号都可以被称为字符。 字节是计算机存储数据的存储单元,是一个8位的二进制数,所以最多只能表示256个数字(0-255)。 编码是大家对计算机如何使用字节来表示一个字符的约定,可分为ASCII编码,ANSI编码(本地化编码),UNICODE编码(国际化编码)三种。 1.ASCII编码:单字节编码。 最初的编码,由一个字节组成,因此只能表示256个字符,但只表示0-9,a-z,A-Z,和一些加减乘除百分号,够老美用了
学到老
2018/03/19
3.2K0
字节码:ASCII编码:单字节编码,ANSI编码:多字节编码,UNICODE编码:宽字节编码
灵魂拷问:Java如何获取数组和字符串的长度?length还是length()?
在逛 programcreek 的时候,我发现了上面这个主题。说实话,我当时脑海中浮现出了这样一副惊心动魄的画面:
沉默王二
2019/12/24
2.3K0
2021-06-30:给定长度为m的字符串aim,以及一个长度为n的字符串str ,问能否在str中找到一个长度为m的连续子串,
2021-06-30:给定长度为m的字符串aim,以及一个长度为n的字符串str ,问能否在str中找到一个长度为m的连续子串, 使得这个子串刚好由aim的m个字符组成,顺序无所谓, 返回任意满足条件的一个子串的起始位置,未找到返回-1。
福大大架构师每日一题
2021/08/05
8700
2021-08-18:扰乱字符串。使用下面描述的算法可以扰乱字符串 s 得到字符串 t :1.如果字符串的长度为 1 ,算法停止
2021-08-18:扰乱字符串。使用下面描述的算法可以扰乱字符串 s 得到字符串 t :1.如果字符串的长度为 1 ,算法停止。2.如果字符串的长度 > 1 ,执行下述步骤:在一个随机下标处将字符串分割成两个非空的子字符串。即,如果已知字符串 s ,则可以将其分成两个子字符串 x 和 y ,且满足 s = x + y 。随机 决定是要「交换两个子字符串」还是要「保持这两个子字符串的顺序不变」。即,在执行这一步骤之后,s 可能是 s = x + y 或者 s = y + x 。在 x 和 y 这两个子字符串上继续从步骤 1 开始递归执行此算法。给你两个 长度相等 的字符串 s1 和 s2,判断 s2 是否是 s1 的扰乱字符串。如果是,返回 true ;否则,返回 false 。
福大大架构师每日一题
2021/09/03
4650
2021-08-18:扰乱字符串。使用下面描述的算法可以扰乱字符串 s 得到字符串 t :1.如果字符串的长度为 1 ,算法停止
C# 8.0 文件长度 Bytes 字节转 KB 等单位字符串
本文将使用 C# 8.0 写一个相对比较省内存和性能不差的将文件长度从 Bytes 转换为单位使用 KB 或 MB 或 GB 等单位的字符串的方法
林德熙
2020/07/28
1.1K0
Qt的QFile
配合QFileDialog:“文件对话框”,一起食用将会更好哦! 专门讲QFileDialog的博文
全栈程序员站长
2022/07/01
1.9K0
HJ1 字符串最后一个单词的长度
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
且陶陶
2023/04/12
6920
题1--字符串最后一个单词的长度
题目描述 计算字符串最后一个单词的长度,单词以空格隔开。  输入描述: 一行字符串,非空,长度小于5000。 输出描述: 整数N,最后一个单词的长度。 示例1 输入 复制 hello world 输出 复制 5 分析:输出字符串长度用len方法;输出最后一个字符串--将字符串变成列表然后用切片[::-1] 代码: str = input() print(len(str.split()[-1]))
py3study
2020/01/16
1K0

相似问题

添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文