tests/DotNetCommon.Test/LuanMaHelperTests.cs
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using NUnit.Framework;
using Shouldly;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
namespace DotNetCommon.Test
{
[TestFixture]
public class LuanMaHelperTests
{
[Test]
public void Test()
{
//System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
LuanMaHelper.InitGBK();
var str = "测试乱码123";
var bs_utf8 = Encoding.UTF8.GetBytes(str);
var bs_gbk = Encoding.GetEncoding("GBK").GetBytes(str);
//"娴嬭瘯涔辩爜123"
var str_futf8_tgbk = Encoding.GetEncoding("GBK").GetString(bs_utf8);
//"��������123"
var str_fgbk_tutf8 = Encoding.UTF8.GetString(bs_gbk);
LuanMaHelper.IsLuanMa(str_futf8_tgbk).ShouldBe(false);
LuanMaHelper.IsLuanMa(str_fgbk_tutf8).ShouldBe(true);
var finalStr_ansi = LuanMaHelper.GetString(bs_utf8);
var finalStr_utf8 = LuanMaHelper.GetString(bs_gbk);
finalStr_ansi.ShouldBe(str);
finalStr_utf8.ShouldBe(str);
}
[Test]
public void TestFile()
{
var filePath = "TestFile_Guid.txt";
var text = @"我是中国人123abcd,21啊";
if (File.Exists(filePath)) File.Delete(filePath);
File.WriteAllText(filePath, text, Encoding.UTF8);
var text2 = LuanMaHelper.ReadAllText(filePath);
text2.ShouldBe(text);
File.Delete(filePath);
File.WriteAllText(filePath, text, Encoding.GetEncoding("GBK"));
text2 = LuanMaHelper.ReadAllText(filePath);
text2.ShouldBe(text);
var b = LuanMaHelper.Detect("—");//Unicode: 0x2014
b.IsLuanMa.ShouldBeTrue();
var res = LuanMaHelper.Detect("�");//Unicode: 0xFFFD
res.Position.ShouldBe("第 1 行, 1 列出现乱码,乱码字符: [�],乱码判定规则: [0xFFFD] 不在常用Unicode范围内!");
}
后面还有 23 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
