Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何检查字符串是否包含特殊字符?_C#_String - Fatal编程技术网

C# 如何检查字符串是否包含特殊字符?

C# 如何检查字符串是否包含特殊字符?,c#,string,C#,String,我正在使用一个API,我传递2个字符串作为参数。 如果我以编程方式将字符串介绍为: string a = "Madrid, Spain"; 一切正常,API响应正常。 但当我用一个文本框介绍同样的“西班牙马德里”时,一切都变了 如果我使用字符串b来调用API,我会得到一个拒绝的请求 本质上,字符串a和字符串b具有相同的内容,但必须有所不同 C#字符串不是以null结尾的,我尝试使用String.EndsWith(environment.NewLine)检查它是否以换行结束,因为我使用enter

我正在使用一个API,我传递2个字符串作为参数。 如果我以编程方式将字符串介绍为:

string a = "Madrid, Spain";
一切正常,API响应正常。 但当我用一个文本框介绍同样的“西班牙马德里”时,一切都变了

如果我使用字符串b来调用API,我会得到一个拒绝的请求

本质上,字符串a和字符串b具有相同的内容,但必须有所不同

C#字符串不是以null结尾的,我尝试使用
String.EndsWith(environment.NewLine)
检查它是否以换行结束,因为我使用enter插入值。我尝试获取字符串的char[]表示形式,以查看是否能够获取特殊字符,但似乎没有

由于C#中的字符串是Unicode,并且一些方法使用类似ASCII的Trim(char[]),我不确定如何使用它们

我的主要目标是能够以ASCII或Unicode的形式查看字符串中包含的所有字符,以便检查导致API出现问题的原因


编辑:最后,问题似乎出在API上,但我还是按照要求得到了十六进制值,所以我学到了一些新东西。感谢您查看字符的十六进制值

foreach (char c in "Hello World !")
    Console.WriteLine(((int)c).ToString("X"));

您从
a==b
中得到了什么结果?向我们展示您的代码。您需要知道用于“TextBox1.Text”的编码。由于您没有提到您的UI技术(Web表单、MVC、WinForms、WPF等),所以很难说清楚。为什么要将字符串输出为ASCII?天哪。。。只需在代码中放置一个断点并调试以查看它的不同之处…@MikeMcCaughan任何名为“Text”的属性都应该是
系统。字符串
,始终是UTF-16。“Characters”有点不精确,但是的,该代码将显示UTF-16代码单元(
char
)字符串中的序列为十六进制值。不精确是什么意思?如果你谈论大小,我不认为这是一个问题x)也许你在想其他我不知道的事情:)一种“字符”的中间含义是字符集中的一个元素。更正式的名称是代码点。然而,Unicode通过具有“组合”码点,避免了为字母和零个或多个变音符号的每个自然组合使用码点。组合的正式名称是grapheme。现在,编码接受一个代码点值并将其转换为存储的表示形式。每个代码点都编码在一个或多个存储单元中,称为代码单元。UTF-16以一个或两个16位代码单元对每个Unicode码点进行编码。在C#中,数据类型是
char
。当然,我会有一些讲座要讲,它仍然有点混乱,但我已经听说了。谢谢你的回答,我真的很感激:)对于你的最后一个问题,我想答案将取决于OP的字符串。
foreach (char c in "Hello World !")
    Console.WriteLine(((int)c).ToString("X"));