首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将字符串转换为无符号int 8数组

将字符串转换为无符号int 8数组
EN

Stack Overflow用户
提问于 2022-07-18 08:20:24
回答 1查看 51关注 0票数 0

我刚开始使用bash,我正在尝试将迅速混淆转换成bash脚本。

基本上,我想把一个字符串转换成一个无符号的-Int-8数组(UTF-8)。

例如,

代码语言:javascript
复制
"hey" = [104, 101, 121] (UTF-8 UINT8 value)
"example" = [101, 120, 97, 109, 112, 108, 101] (UTF-8 UINT8 value)

有人知道这是否可能吗?

EN

回答 1

Stack Overflow用户

发布于 2022-07-18 16:12:22

使用纯bash,没有外部程序:

代码语言:javascript
复制
#!/usr/bin/env bash                                                                                                                                                                                                                              

to_codepoints() {
    local LC_CTYPE=C IFS=, n
    local -a cps
    # Iterate over each byte of the argument and append its numeric value to an array                                                                                                                                                            
    for (( n = 0; n < ${#1}; n++ )); do
        cps+=( $(printf "%d" "'${1:n:1}") )
    done
    printf "[%s]\n" "${cps[*]}"
}

to_codepoints hey
to_codepoints example
to_codepoints $'\u00C4ccent'

输出

代码语言:javascript
复制
[104,101,121]
[101,120,97,109,112,108,101]
[195,132,99,99,101,110,116]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73019284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档