在给定字符串中打印不可打印的字符?

时间:2012-06-21 12:16:39

标签: c# .net visual-studio-2010 visual-studio

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

所以有人可以建议我如何在C#中找到并打印那些不可打印的字符 传递这个字符串?

  

我在8月份订购了一位金牛座,而且还没有预定,我是   只是想知道订单是否有问题?或者如果   队列很长?订货号:8028车辆代表:74JTag#:   200L049描述:2011 TAURUS FWD SELOrdered:08-AUG- 2010VIN   分配:VIN#:计划:在   制作:制作:已开发票:发行时间:发货:准备:税务   地点:密歇根州(20)国家保险:USOB状态:050 -   清洁未完成的订单

当我在记事本++中粘贴字符串时,它显示如下。

enter image description here

2 个答案:

答案 0 :(得分:9)

您可以使用char.IsControl(c)来测试某个字符是否为对照(不可打印)字符:

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

答案 1 :(得分:0)

我在google和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();

        }
    }