2026a
# Unicode 和 ASCII 值
Syslab 使用 UTF-16 编码将所有字符存储为 Unicode® 字符,其中每个字符都由数值代码表示。(Unicode 纳入了 ASCII 字符集作为其前 128 个符号,因此 ASCII 字符在 Unicode 和 ASCII 中具有相同的数值代码。)字符数组和字符串数组都使用此编码。您可以使用各种数值转换函数将字符转换为其数值代码。您可以使用 char 函数将数字转换为字符。
# 将字符转换为数值代码
您可以将字符转换为表示其 Unicode 代码值的整数。要转换单个字符或字符数组,请使用以下任一函数:
Float64
UInt16、UInt32 或 UInt64
最佳做法是使用 Float64 函数。但是,如果您需要将数值存储为整数,请使用有至少 16 位的无符号整数,因为 Syslab 使用 UTF-16 编码。
使用 Float64 函数将字符向量转换为 Unicode 代码值。
C = ['S', 'y', 's', 'l', 'a', 'b']
unicodeValues = Float64.(C)
unicodeValues =
6-element Vector{Float64}:
83.0
121.0
115.0
108.0
97.0
98.0
您无法将字符串数组中的字符直接转换为 Unicode 代码值。特别是,Float64 函数将字符串转换为它们所表示的数字。
要转换字符串中的字符,请先将字符串转换为字符向量,或使用花括号提取字符。然后使用 Float64 等函数转换字符。
str = "Syslab";
C = collect(str);
unicodeValues = Float64.(C)
unicodeValues =
6-element Vector{Float64}:
83.0
121.0
115.0
108.0
97.0
98.0
# 将数值代码转换为字符
您可以使用 char 函数将 Unicode 值转换为字符。
D = [83 121 115 108 97 98]
D =
1×6 Matrix{Int64}:
83 121 115 108 97 98
C = Char.(D)
C =
1×6 Matrix{Char}:
'S' 'y' 's' 'l' 'a' 'b'
join(C, "")
ans = "Syslab"
char 的典型用途是创建无法键入的字符,并将其追加到字符串中。例如,创建表示度符号的字符,并将其追加到字符串中。度符号的 Unicode 代码值是 176。
deg = Char(176)
deg =
'°': Unicode U+00B0 (category So: Symbol, other)
myLabel = "Current temperature is 21" * deg * "C"
myLabel =
"Current temperature is 21°C"