C#设置成英文输入法,文件编码转换(中文转UTF8)

[DllImport("user32.dll")]
public static extern bool PostMessage(int hhwnd, uint msg, IntPtr wparam, IntPtr lparam);

[DllImport("user32.dll")]
public static extern IntPtr LoadKeyboardLayout(string pwszKLID, uint Flags);

public static uint WM_INPUTLANGUANGEREQUEST = 0X0050;
public static int HWND_BROADCAST = 0xffff;
public static string en_US = "00000409"; //英文
public static string cn_ZH = "00000804";
public static uint KLF_ACTIVATE = 1;
引用
PostMessage(HWND_BROADCAST, WM_INPUTLANGUANGEREQUEST, IntPtr.Zero, LoadKeyboardLayout(en_US, KLF_ACTIVATE));

 

//文件编码转换

static void Main(string[] args)
{
const string targetEncoding = "utf-8";
foreach (var f in new DirectoryInfo(@"<your project's path>").GetFiles("*.cs", SearchOption.AllDirectories))
{
var str = File.ReadAllText(f.FullName);
File.WriteAllText(f.FullName, str, Encoding.GetEncoding(targetEncoding));

}
Console.WriteLine("Done.");
Console.ReadKey();
}

 

2\

static void Main(string[] args)
{
string path = @"C:\Users\Administrator\Desktop\MicroEms";
Encoding encoding = Encoding.Default;
String original = String.Empty;
foreach (var f in new DirectoryInfo(path).GetFiles("*.cs", SearchOption.AllDirectories))
{
using (StreamReader sr = new StreamReader(f.FullName, Encoding.Default))
{
original = sr.ReadToEnd();
encoding = sr.CurrentEncoding;
sr.Close();
}
if (encoding == Encoding.UTF8)
continue;
byte[] encBytes = encoding.GetBytes(original);
byte[] utf8Bytes = Encoding.Convert(encoding, Encoding.UTF8, encBytes);
var utf8Text = Encoding.UTF8.GetString(utf8Bytes);

File.WriteAllText(f.FullName, utf8Text, Encoding.UTF8);
}

}

posted @   Neil Chen  阅读(610)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示