Unicode控制字符

本文详细探讨了Unicode控制字符在处理多方向文本时的作用,包括Unicode方向属性、全局方向和方向串的概念,以及隐式和显式控制字符的使用。通过LRM、RLM、LRE、RLE、LRO、RLO和Isolate等控制字符,可以调整文本的显示顺序,解决BIDI算法中的问题。此外,还提到了相关的CSS属性`direction`和`unicode-bidi`在控制文本方向上的应用。
摘要由CSDN通过智能技术生成

Unicode控制字符

一、前言

在所有主要的Web浏览器中内存中的字符顺序(逻辑)与它们显示的顺序(可视)是不同的。Unicode 定义了它其中每个字符的方向属性,浏览器应用的一组规则(通过这个来进行自动判断文本Unicode方向属性应该使用哪种方向)在显示时产生正确的顺序由Unicode双向算法进行描述,也可简称为BIDI算法。控制字符,有时候也称非打印字符,是出现在特定的信息文本中,表示某一控制功能的字符。这类字符并不显示,只包含某种特定的功能。

二、Unicode方向属性

Unicode方向属性包含以下三种类型:

  • 强字符:大部分的字符都属于强字符,比如英文字母、汉字和阿拉伯字母。它们的方向性是确定的(英文字母是从左到右,而阿拉伯字母则从右到左),和其上下文的bidi属性无关。并且,强字符在bidi算法中可能会影响其前后字符的方向性;
  • 弱字符:数字和数字相关的符号属于弱字符。它们的方向性是确定的,但对其前后字符的方向性不会产生影响;
  • 中性字符:大部分的标点符号和空格属于中性字符。它们的方向性是不确定的,由上下文的bidi属性来决定其方向。
方向性 相关字符 效果
Left-to-Right (LTR) 强字符从左至右(英文字母、汉字以及世界上大部分从左到右书写的文字) 方向性确定,LTR,和上下文无关。并且可能会影响其前后字符的方向性。
Right-to-Left (RTL) 强字符从右至左(阿拉伯文字、波斯语以及大部分从右到左书写的文字) 方向性确定,RTL,和上下文无关。并且可能会影响其前后字符的方向性。
Left-to-Right (LTR) / Right-to-Left (RTL) 弱字符(数字和数字相关的符号) 和强字符一样方向性也是确定的,但是不会影响前后字符的方向性。
Neutral 中性字符(大部分标点符号和空格) 方向性不确定,由上下文环境决定其方向。
2.1 全局方向

也可以成为基础方向。全局方向是一个区域中的总体方向。中英文环境一般是 (LTR) 从左至右,而阿拉伯文环境则为 (RTL) 右至左的书写顺序。我们可以通过dir属性或者direction样式,设置指定方向。

2.2 方向串

方向串是指在一段文字中具有相同方向性的连续字符,并且其前后没有相同方向性的其它方向串。如以下例子:

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值