Dart基础语言 — Runes

本文详细介绍了Dart中的Runes对象,它用于表示32位Unicode字符,确保兼容UTF-16编码。通过示例展示了Runes与String之间的转换,如`fromCharCodes`函数和`codeUnitAt`方法的使用。此外,还阐述了字符编码的基础知识,包括ASCII、Unicode以及不同UTF编码。对于处理非ASCII字符,Runes提供了一种有效的方式。
摘要由CSDN通过智能技术生成

Dart基础语言 — Runes

Runes

Runes 对象是一个 32位 字符对象,用来表示一个字。
这样设计也是考虑兼容 UTF-16 四个字节的情况。

length 和 runes.length 比较

String a = '';
print(a.length);
print(a.runes.length);

>> 输出
2 // 标识占 2 个 16 位字符
1 // 表示占 1 个 32 位字符

runes 是一个 32 位字符对象

操作 32-bit Unicode 字符

Runes b = new Runes('\u{1f596} \u6211');
var c = String.fromCharCodes(b);

或者

String c = '\u{1f596} \u6211'

如果非4个数值,需要用 {…}

返回 16-bit code units 的 codeUnitAt codeUnits

var a = '';
print(a.codeUnitAt(0));
print(a.codeUnits);

>> 输出
55357           // 第 1 位的 10 进制数值
[55357, 56442]  // 显示 2 位的 10 进制数值

返回 32-bit Unicode 的 runes

var a = '';
print(a.runes);

>> 输出

(128122) // 显示 32 位的 10 进制数值

String 操作整理

| 名称 | 说明 |
| —— | —— |
| codeUnitAt | 某个字符的码 10进制 |
| fromCharCodes | Runes 转 String 工厂函数 |
| runes | 返回字对象 |

基础知识字符集

  • ASCII
  • 非 ASCII 中的 GB2312、GBK
  • Unicode、UTF-8、UTF-16、UTF-32

PDF文档整理:

Dart基础语言学习-上篇.pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨夜的博客

大赏给个咖啡钱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值