相关疑难解决方法(0)

如何在C#中比较'μ'和'μ'

我陷入了一个令人惊讶的问题.

我在我的应用程序中加载了一个文本文件,并且我有一些逻辑比较了μ的值.

我意识到,即使文本相同,比较值也是错误的.

 Console.WriteLine("?".Equals("µ")); // returns false
 Console.WriteLine("µ".Equals("µ")); // return true
Run Code Online (Sandbox Code Playgroud)

在后面的行中,字符μ被复制粘贴.

任何想法都会有所帮助.

.net c# string unicode string-comparison

111
推荐指数
0
解决办法
4739
查看次数

将非 ascii 多文化字符转换为等效的简化字母数字字符

我在使用 unicode 字符搜索文件名时遇到问题。这些文件可能具有正确或更改的名称(替换为等效的 ascii 字符)。\n我想编写一些代码来查找使用相同单词(无论更改与否)的文件,并且同一字符串内可能存在不连贯的文化混合。\n为了保留它简单,我应该只管理欧洲语言的字符串。

\n\n

等价示例:

\n\n
\xc6\x90psilon <=> epsilon\nK\xc3\xb8benhavn <=> Kobenhavn\n\xc3\x85ngstr\xc3\xb6m <=> Angstrom\nEl Ni\xc3\xb1o <=> El Nino\nTi\xe1\xba\xbfng Vi\xe1\xbb\x87t <=> Tieng Viet\n\xc4\x8ce\xc5\xa1tina <=> Cestina\nencyklop\xc3\xa6di <=> encyklopaedi\nExpedi\xc8\x9bia <=> Expeditia\n\xc3\xb8\xc3\xb0rum <=> odrum\n\xc5\x93uf <=> oeuf\n\xce\xbc (\\u03bc) <=> \xc2\xb5 (\\u00b5)\nStra\xc3\x9fe <=> Strasse\n
Run Code Online (Sandbox Code Playgroud)\n\n

我已经找到了类似问题的一些答案,但它们基于更简单的字符串(其中删除重音就足够了,使用 Unicode 规范化和删除变音符号),或基于“自己动手”。

\n\n

如何比较“看起来相似”的 Unicode 字符?

\n\n

如何将 Unicode 字符转换为其等效的 ASCII 字符

\n\n

替换 C# 中的字符 (ascii)

\n\n

不幸的是,Unicode 规范化(自动方式)至少对以下字符不起作用:

\n\n
\xc6\x90 \xc3\xb8 \xc3\xb0 => missing equivalence\n\xc3\xa6 \xc5\x93 \xc3\x9f => missing expansion\n
Run Code Online (Sandbox Code Playgroud)\n\n

除了我自己手动转换每个“众所周知”字符之外,是否有一个函数/库可以在 C# 中实现此目的?

\n

c# unicode ascii

6
推荐指数
1
解决办法
3061
查看次数

R使看起来相同但不相同的两个字符串相同

我有两个看起来相同但不相同的字符串。

> t
[1] "2009_Manaus_Aerota?xi_crash"
> t2
[1] "2009_Manaus_Aerotáxi_crash"
> identical(t,t2)
[1] FALSE
> str(t)
 chr "2009_Manaus_Aerotaxi_crash""| __truncated__
> str(t2)
 chr "2009_Manaus_Aerotáxi_crash"
Run Code Online (Sandbox Code Playgroud)

如何强制这两个字符串相等?

谢谢

string comparison r

5
推荐指数
1
解决办法
880
查看次数

标签 统计

c# ×2

string ×2

unicode ×2

.net ×1

ascii ×1

comparison ×1

r ×1

string-comparison ×1