我想检查一些字母是否属于俄文字母。我可以用西里尔字母直接比较:检查一些字母是否属于俄文字母
letter in ('А', 'Б', 'В', 'Г', 'Д', 'Ж', ...)
有没有更简单的方法?例如。为英文字母,我可以使用秩()函数:
rank('A') <= rank(letter) <= rank('z')
但这个函数不会为UTF-8编码工作。我如何获得UTF-8表中的字母位置?
我想检查一些字母是否属于俄文字母。我可以用西里尔字母直接比较:检查一些字母是否属于俄文字母
letter in ('А', 'Б', 'В', 'Г', 'Д', 'Ж', ...)
有没有更简单的方法?例如。为英文字母,我可以使用秩()函数:
rank('A') <= rank(letter) <= rank('z')
但这个函数不会为UTF-8编码工作。我如何获得UTF-8表中的字母位置?
我相信你可以使用BASECHAR
函数。这会将角色转换为unicode转义。
data test;
input char $;
datalines;
Б
Г
Д
Ж
a
b
c
;
run;
data test;
set test;
ok = (char=basechar(char,'ESC'));
put char= ok=;
run;
返回:
char=Б ok=0
char=Г ok=0
char=Д ok=0
char=Ж ok=0
char=a ok=1
char=b ok=1
char=c ok=1
你应该能够与$HEX.
格式识别原始字节码,然后验证基础上(见像this one表,看看什么样的价值观是古代斯拉夫语)。
例如,使用DOM的例子:
data test;
input char $;
put char= $HEX4.;
datalines;
Б
Г
Д
Ж
a
b
c
;
run;
感谢您的建议Joe! – PierreVanStulov
谢谢DomPazz! – PierreVanStulov
虽然这不会识别出该字符是俄语字母表,但只要确定该字符不是基本编码中的字符即可? (这可能适用于手头的案例,只是觉得值得一提的是它实际上在做什么。) – Joe