草庐IT

utf8mb_unicode_ci

全部标签

c# - 什么.NET StringComparer 相当于 SQL 的 Latin1_General_CI_AS

我在我的数据库和我的C#代码之间实现了一个缓存层。这个想法是根据查询的参数缓存某些数据库查询的结果。数据库使用默认排序规则-SQL_Latin1_General_CP1_CI_AS或Latin1_General_CI_AS,我相信基于一些简短的谷歌搜索,这等同于相等,只是排序不同。我需要一个.NETStringComparer,它可以为我提供相同的行为,至少对于相等性测试和哈希码生成,就像数据库的排序规则正在使用的那样。目标是能够在C#代码中的.NET字典中使用StringComparer来确定特定字符串键是否已在缓存中。一个真正简化的例子:varcomparer=StringComp

c# - .NET Framework 4.5 Full Install 为什么只有 50MB(因为他们不再有 Client Profile)?

(所有尺寸引用均以包装尺寸为单位,而非部署/安装尺寸)基本上,以前的.NETFramework3.5有几百MB的大小(231.5MB),3.5不存在客户端配置文件,但是4.0版本确实存在客户端配置文件,大小仅为41MB,而4.0的完整安装(非CP)大小为48.1MB。现在,他们说(在问题末尾发布的链接中)大多数应用程序往往需要ClientProfile4.0中未涵盖的类和命名空间,因此他们决定不为4.5执行ClientProfile因为这个原因.他们引用的另一个原因是,由于他们能够将.NETFramework4.5的完整安装版本降低到50MB,这也减少了创建客户端配置文件版本的需要(因

c# - 为什么 UTF8Encoding.GetBytes 不发出字节顺序标记?

这个片段说明了一切:-)UTF8Encodingenc=newUTF8Encoding(true/*includeByteOrderMark*/);byte[]data=enc.GetBytes("a");//datahaslength1.//IexpectedtheBOMtobeincluded.What'sup? 最佳答案 您不希望它用于每次GetBytes调用,否则您将无法(比方说)一次写入一个文件一行。通过使用GetPreamble公开它,调用者可以在适当的点插入前导码(即在他们的数据的开头)。不过,我同意文档可能会更清晰。

c# - 我如何在 C# 中获取 unicode 字符的十进制值?

如何在C#中获取unicode字符的数值?例如,如果泰米尔语字符அ(U+0B85)给出,输出应该是2949(即0x0B85)另见C++:Howtogetdecimalvalueofaunicodecharacterinc++Java:HowcanIgetaUnicodecharacter'scode?多码点字符一些字符需要多个代码点。在这个例子中,UTF-16,每个代码单元仍然在基本多语言平面中:>(即U+0072U+0327U+030C)>(即U+0072U+0338U+0327U+0316U+0317U+0300U+0301U+0302U+0308U+0360)更重要的是,一个“字

C# regex 删除不可打印字符和控制字符,在混合了多种不同语言、unicode 字母的文本中

我很感激你的帮助,因为我不知道要使用哪个范围的字符,或者我是否在ruby​​中找到了像[[:cntrl:]]这样的字符类?通过不可打印,我的意思是删除所有未显示在ie输出中的字符,当一个人打印输入字符串时。请注意,我正在寻找c#正则表达式,我的代码没有问题 最佳答案 您可以使用删除所有控制字符和其他不可打印的字符s=Regex.Replace(s,@"\p{C}+",string.Empty);\p{C}Unicode类别类匹配所有控制字符,甚至是ASCII表之外的字符,因为在.NET中,Unicode类别类默认是Unicode识别

c# - 从控制台读取 unicode

我正在尝试从C#的控制台读取unicode字符串,为了举例,让我们使用他的:c:\SVN\D³ebugger\src\виталик\Program.cs起初我只是尝试Console.ReadLine()返回了c:\SVN\D3ebugger\src\????????\Program.cs我试过像这样将Console.InputEncoding设置为UTF8Console.InputEncoding=Encoding.UTF8但结果是c:\SVN\D³ebugger\src\???????\Program.cs,基本上把字符串的西里尔字母部分弄乱了。所以随机绊倒我试图设置这样的编码,C

c# - 如何使控制台能够打印 65535 个 UNICODE 字符中的任何一个

我正在试验unicode字符并从Wikipedia中获取unicode值页Ihe问题是我的控制台显示所有C0控件和基本拉丁语unicode字符,即从U+0000到U+00FF但对于所有其他类别,如LatinExtended-B、西里尔文、其他语言等,控制台打印问号字符(?)。我的C#代码是usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceDataTypes{classProgram{staticvoidMain(string[]args){charch='\u01

c# - 响应消息的内容类型 application/xml;charset=utf-8 与绑定(bind)的内容类型不匹配 (text/xml; charset=utf-8)

我尝试使用独立应用程序使用WCFWeb服务。我可以使用InternetExplorer查看此服务,也可以在VisualStudio服务引用中查看。这是我遇到的错误Thecontenttypetext/html;charset=UTF-8oftheresponsemessagedoesnotmatchthecontenttypeofthebinding(text/xml;charset=utf-8).如何更改它以使用正确的内容类型?这是我的配置文件这是堆栈{System.ServiceModel.ProtocolException:Thecontenttypeapplication/xm

c# - “UTF8”不是受支持的编码名称

所以我只是在玩弄Spotify的WebAPI,我正在尝试访问我最常播放的轨道。尽管我遇到了几个小时以来一直试图解决的问题,但我找不到答案。当我尝试反序列化我的响应时,出现以下错误:'UTF8'isnotasupportedencodingname.Forinformationondefiningacustomencoding,seethedocumentationfortheEncoding.RegisterProvidermethod.Parametername:nameThecharactersetprovidedinContentTypeisinvalid.Cannotreadc

c# - 根据字节长度缩短UTF8字符串的最佳方法

最近的一个项目要求将数据导入Oracle数据库。将执行此操作的程序是C#.Net3.5应用程序,我正在使用Oracle.DataAccess连接库来处理实际的插入。我遇到一个问题,在插入特定字段时会收到以下错误消息:ORA-12899值对于X列太大我使用了Field.Substring(0,MaxLength);,但仍然出现错误(尽管不是每条记录)。最终,我看到了应该是显而易见的东西,我的字符串是ANSI,字段是UTF8。它的长度以字节为单位,而不是字符。这使我想到了我的问题。修剪弦线以固定MaxLength的最佳方法是什么?我的子字符串代码按字符长度工作。是否有简单的C#函数可以按字