【发布时间】:2015-09-17 06:51:29
【问题描述】:
我对修剪方法有一个非常奇怪的问题。我正在尝试修剪从数据库接收到的字符串。这是我目前的方法:
string debug = row["PLC_ADDR1_RESULT"].ToString();
SPCFileLog.WriteToLog(String.Format("Debug: ${0}${1}",debug,Environment.NewLine));
debug = debug.Trim();
SPCFileLog.WriteToLog(String.Format("Debug2: ${0}${1}", debug, Environment.NewLine));
debug = debug.Replace(" ", "");
SPCFileLog.WriteToLog(String.Format("Debug3: ${0}${1}", debug, Environment.NewLine));
产生如下文件输出:
Debug: $ $
Debug2: $ $
Debug3: $ $
检查文件中的十六进制代码发现了一些有趣的东西。所谓的空白不是十六进制 20(空白),而是设置为 00(null?)
我们的数据库如何包含此类数据是另一个谜,但无论如何,我需要修剪那些无效 (?) 空字符。我该怎么做?
【问题讨论】:
-
让我猜你的数据库字符串包含
\0字符,第二次分享你如何在数据库数据类型中存储数据+举例说明你如何查询它 -
数据由我无法控制的另一个服务插入到数据库中。由于 NDA,我不允许透露查询,但可以说它只是 varchar 字段的 SELECT COLUMN。
-
Unicode 代码点为 0x0000 的字符被归类为控制字符,而不是空格。
标签: c# .net sql-server