2012-06-21 208 views
4

我有一个字符串,在SQL中我测试过这个字符串包含不可打印的字符,但我找不到那些。打印给定字符串中的非打印字符?

所以任何人都可以建议我如何通过传递该字符串来找到并打印C#中的那些非打印字符 ?

我在8月订了一个金牛座,它还没有预定,我是 只是想知道订单有什么问题吗?或者如果 队列很长?订单号:8028Vehicle代表:74JTag#: 200L049Description:2011 TAURUS FWD SELOrdered:08-AUG- 2010VIN 分配:VIN#:计划:在 制作:制作:已开发票:发行时间:发货:准备:税务 位置:STATE OF密歇根州(20)国家保险:USOB状态:050 - CLEAN计划外订单

正如我粘贴到记事本中的字符串++中这样表示。

enter image description here

+1

Define * non-printable *。你在寻找某个ASCII代码范围内的字符吗?如果是这样? –

+0

@DarinDimitrov查看我的问题,编辑。 –

回答

8

您可以使用char.IsControl(c)来测试一个字符是否是控制(非打印)字符或不:

foreach (var c in str) 
{ 
    if (char.IsControl(c)) 
    { 
     Console.WriteLine("Found control character: {0}", (int)c); 
    } 
} 
+0

如何处理Unicode字符'LEFT-TO-RIGHT MARK'(U + 200E) – David

0

我写了一个程序与谷歌和SO一些帮助。

该程序将打印ascii值和字符的位置是非打印字符。

class Program 
    { 
     static void Main(string[] args) 
     { 

      string text = @"I am an FMCC employee located in the Chicagoland area that currently has 2 available/active ManagementLease tags (non-incremental) and 1 currently utilized Sales Vehicle tag. I have a 2009 Sales vehicle now andhave ordered a replacement for that vehicle (2010 Taurus) per our current direction. I have not had a 2009 Model vehicle for either of my Management Lease tags in 2009. I was married in August of this year andordered a 2010 Flex on one of my Management Lease tags in September.My issue is that my wife's current vehicle is no longer serviceable, and the 2010 Flex has yet to be scheduled tobe built.My exception request is that I be allowed to take delivery and assume payments for a 2010 Taurus that is at alocal dealership and displayed on the ""Vehicles Available Now"" page on an interim basis until my 2010 Flex isdelivered. I appreciate that typically an employee cannot have two vehicles from the same model year on agiven Management Lease tag, but I was hoping an exception could be made due to my recent marriage andthe fact that I did not have a 2009 model year vehicle on any tags."; 
      for (int i = 0; i < text.Length; i++) 
      { 
       if (Char.ConvertToUtf32(text, i) < 32) 
       { 
        Console.WriteLine("position " + i + " " + text[i] + " => " + Char.ConvertToUtf32(text, i)); 
       } 
      } 
      Console.ReadLine(); 

     } 
    }