草庐IT

UTF8ToString

全部标签

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

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

c# - 为什么编译器允许将 Convert.ToString() 分配给整数?

我不小心在我的代码中偶然发现了类似于下面的东西,它编译得很好,但在运行时显然是炸弹:dynamicfiftySixDynamic=56;intfiftySixInt=System.Convert.ToString(fiftySixDynamic);Convert.ToString()的每次重载都会返回一个字符串,所以这肯定不应该编译?这是怎么回事? 最佳答案 您正在使用dynamic作为Convert.ToString的输入。因为输入是动态,方法绑定(bind)和类型检查被推迟到运行时,所以编译器看不到唯一可能的返回类型是strin

c# - 如何让 ToString() 出现在 Debug 中

我想让ToString()在Debug模式下为我控制的类显示。如果这是当您将鼠标悬停在变量上时首先显示的内容,那就太好了。这个有属性吗? 最佳答案 标记你的类(class)[System.Diagnostics.DebuggerDisplay("{ToString()}")]测试:[System.Diagnostics.DebuggerDisplay("{ToString()}")]classMyClass{privatestring_foo="Thisisthetextthatwillbedisplayedatdebugging"

c# - 为什么 DateTime.Now.TimeOfDay.ToString ("HH:mm:ss.ffffff") 抛出 FormatException?

我在抛出FormatException时遇到了类似的问题。我的代码很简单:voidOrders_OnSubmit(){DateTimeCurrentTime=DateTime.Now;rtbAdd("Submittedon"+CurrentTime.Date.ToString("MM/dd/yyyy")+"at"+CurrentTime.TimeOfDay.ToString("HH:mm:ss.ffffff"));}voidrtbAdd(StringS){DefaultDelegatedel=delegate(){rtb.AppendText(S+"\n");};this.Invoke

C# Double.ToString() 性能问题

我有以下方法将double组转换为List:staticDestTest(Sources){Destd=newDest();if(s.A24!=null){double[]dd=s.A24;intcnt=dd.Length;Listlst=newList();for(inti=0;i根据我的基准测试,在循环中执行List.Add()似乎是最快的方法,超过了所有各种LINQ和Convert技巧。这真的很慢。一百万次调用需要2400毫秒(任何CPU,首选64位)。所以我正在尝试各种方法来让它更快。假设我显然无法缓存源或目标列表等。所以无论如何,我在这里偶然发现了一些奇怪的东西......如

c# - 在具有多个对应名称的枚举值上调用 ToString() 时,什么决定选择哪个名称?

在具有多个对应名称的enum值上调用ToString()时,什么决定选择哪个名称?问题的详细解释如下。我已经确定这不是由以下任何一个唯一确定的:字母顺序;申报单;也不,名称长度。例如,假设我想要一个枚举,其中数值直接对应于实际用途(例如颜色的rgb值)。publicenumRgbColor{Black=0x000000,Red=0xff0000,Green=0x00ff00,Blue=0x0000ff,White=0xffffff}现在,使用此枚举,调用default(RgbColor)将返回黑色的rgb值。假设我不希望默认值为黑色,因为我希望UI设计人员在没有关于使用什么颜色的具体说

c# - .NET 的 Double.ToString 方法中的两次错误

在数学上,考虑这个问题的有理数8725724278030350/2**48哪里**分母中表示求幂,即分母为2到48权力。(分数不是最低的,可以减少2。)这个数字是正好可表示为System.Double.它的十进制扩展是31.0000000000000'49'73799150320701301097869873046875(exact)其中撇号不代表丢失的数字,而仅标记四舍五入为的边界。15分别17数字是要执行的。请注意以下事项:如果此数字四舍五入为15位,结果将为31(后跟13个0s)因为接下来的数字(49...)以4开头(意思是向下舍入)。但是如果数字先四舍五入到17位,然后再四舍五

c# - 无法处理消息,因为内容类型 'application/json; charset=utf-8' 不是预期的类型 'text/xml; charset=utf-8'

我在通过ajaxjson调用WCF服务时收到上述响应。我的调用代码是:$(document).ready(function(){$.ajax({type:"POST",contentType:"application/json;charset=utf-8",url:"http://localhost:90/WebServices/UserService.svc/Calculate",data:"{}",timeout:10000,dataType:"json",success:function(response){alert(response)},error:function(xhr,

c# - 如何创建自己的自定义 ToString() 格式?

我想指定ToString格式的格式,但我不确定处理此问题的最佳方法。例如,如果我有以下说明符EE=设备ED=设备描述EI=设备ID所以如果我这样使用ToString:eqp.ToString("EE-EI(ED)")输出可能是:"CAT994-61(Frontendloader)"最好的方法是搜索子字符串并进行标记替换吗?有没有人有这样做的例子?我目前正在执行顺序string.Replace,效果很好。publicclassEquipment{//(otherclasscode)publicstringToString(stringformat){stringoutput=format

c# - 借助C#读取txt文件(unicode和utf8)

我创建了两个内容相同的txt文件(windows记事本)“thankyou-спасибо”,并将它们保存为utf8和unicode。在记事本中,它们看起来不错。然后我尝试使用.Net阅读它们:...File.ReadAllText(utf8FileFullName,Encoding.UTF8);和...File.ReadAllText(unicodeFileFullName,Encoding.Unicode);但在这两种情况下,我都收到了“谢谢-????????”。怎么了?更新:utf8代码staticvoidMain(string[]args){varencoding=Encodi