将字符串与来自不同字母表的符号进行比较

Pie*_*lov 5 string sas string-comparison

我想比较两个包含不同字母符号的字符串(例如俄语和英语).我希望看起来相似的符号被认为是彼此相等的.

例如,在单词"Mom"中,字母"o"来自英文字母(Unicode中的代码043E),而在世界上"Möm"字母"о"来自俄语字母(Unicode中的代码006F).所以("Mom" = "M?m")=>假,但我希望它是真的.是否有一些标准的SAS功能,或者我应该做一个宏来做它.

谢谢!

K.I*_*.I. 1

我会这样做:

\n\n

首先我会制作地图。我的意思是俄语中的哪个字母对应于英语中的哪个字母。示例:
\n\xd0\xb1 = b
\n\xd0\xb2 = v
\n...

\n\n

我会将此映射存储在单独的表中或作为 MacroVars。\n然后我将使用 tranwrd 函数创建一个宏循环,该循环遍历创建的映射。

\n\n

这里的例子可能就是这样。

\n\n
data _null_;\n    stringBefore = "\xd0\xb1\xd0\xb5\xd0\xb7";\n    stringAfter = tranwrd(stringBefore,"\xd0\xb0","a");\n    stringAfter = tranwrd(stringAfter,"\xd0\xb1","b");\n    stringAfter = tranwrd(stringAfter,"\xd0\xb2","v");\n...\nrun;\n
Run Code Online (Sandbox Code Playgroud)\n\n

经过这次转换,我想你可以比较你的字符串。

\n