You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中将字符串解析为ulong时抛出FormatException异常问题排查

问题原因及解决方案

核心问题

你定义的字符串变量data里包含了不可见的特殊控制字符(具体是U+202D从右到左覆盖字符),这些字符肉眼无法识别,但会被ulong.Parse()判定为非数字格式,从而抛出FormatException。

而你能正常运行的代码中,直接传入的"071926809"是纯数字字符串,没有隐藏字符,所以解析逻辑可以正常执行。

验证方法

你可以通过遍历字符串的每个字符,查看其Unicode编码来确认隐藏字符的存在:

string data = "‭‭071926809";
foreach (var c in data)
{
    Console.WriteLine($"'{c}' - Unicode: U+{((int)c):X4}");
}

运行后会看到前两个字符的编码为U+202D,这就是导致解析失败的关键原因。

解决方案

  • 手动清除隐藏字符,重新输入纯数字字符串:
string data = "071926809";
Console.WriteLine(ulong.Parse(data));
  • 如果字符串来自外部来源(如复制粘贴),可以用正则表达式过滤掉非数字字符:
using System.Text.RegularExpressions;

string data = "‭‭071926809";
// 仅保留字符串中的数字字符
string cleanedData = Regex.Replace(data, @"[^0-9]", "");
if (ulong.TryParse(cleanedData, out ulong result))
{
    Console.WriteLine(result);
}

内容的提问来源于stack exchange,提问作者upender singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 19:12:42