Tag: 编码

编码UTF8 C#进程

我有一个处理vbscript并生成输出的应用程序。 private static string processVB(string command, string arguments) { Process Proc = new Process(); Proc.StartInfo.UseShellExecute = false; Proc.StartInfo.RedirectStandardOutput = true; Proc.StartInfo.RedirectStandardError = true; Proc.StartInfo.RedirectStandardInput = true; Proc.StartInfo.StandardOutputEncoding = Encoding.UTF8; Proc.StartInfo.StandardErrorEncoding = Encoding.UTF8; Proc.StartInfo.FileName = command; Proc.StartInfo.Arguments = arguments; Proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; //prevent console window from popping up Proc.Start(); string output = Proc.StandardOutput.ReadToEnd(); string error = […]

Windows -1252不支持编码名称。 C#

我正在使用Windows 10 Universal App和ARM CPU为Raspberry Pi创建应用程序。 编码时出现以下错误: 附加信息:’windows-1252’不是受支持的编码名称。 有关定义自定义编码的信息,请参阅Encoding.RegisterProvider方法的文档。 这是我的代码。 private async void Login(string passcode) { try { MySqlConnection conn = new MySqlConnection(“Server=127.0.0.1;Port=3306;Database=database;Uid=username;Pwd=password;SslMode=None;charset=utf8”); MySqlCommand cmd; conn.Open(); cmd = new MySqlCommand(“Select * from users where User = ‘” + passcode + “‘”, conn); MySqlDataReader dr; dr = cmd.ExecuteReader(); int count = 0; while (dr.Read()) { count […]

如何设置IIS网站的默认编码?

我的网站是经典ASP和ASP.NET的结合 我的页面的默认编码目前是ISO-8859-1 。 即使没有标签,响应页面也将编码为ISO-8859-1 。 如何将其更改为UTF-8 ?

将字节数组转换为任何基数

我有一个字节数组(任意长度),我想用我自己的基本编码器将这个数组编码成字符串。 在.NET是标准的Base64编码器,但是如果我想在Base62 , Base53或Base13对数组进行编码呢? 甚至可以创建这样的通用基础编码器? 我知道我可以用简单的方法做到这一点,也就是说,对于每个字节保留固定数量的字符(在Base62情况下,这将是5个字符),并且做直接字节 – >字符编码,但我会浪费空间,因为5个Base62字符能够包含多于1个字节,但少于2个字节。 我该怎么写这样的编码器? 或者已经有一些课程了吗? 请注意我也需要通用解码器,否则这对我来说没用。 资源 由于解决方案已经知道(使用BigInteger ),我想在这里放一些与BigInteger类相关的资源,因为它在.NET 3.5中不可用: C#中的大整数 http://intx.codeplex.com/ https://svn.apache.org/repos/asf/incubator/heraldry/libraries/csharp/openid/trunk/Mono/Mono.Math/BigInteger.cs http://www.codeproject.com/KB/cs/BigInteger_Library.aspx http://www.codeproject.com/KB/cs/biginteger.aspx

注意事项将C#字符串编码为Javascript字符串

我正在尝试为我的项目编写一个自定义的Javascript MVC3 Helper类,其中一个方法应该将C#字符串转义为Javascript字符串。 我知道C#字符串是UTF-16编码的 ,Javascript字符串似乎也是UTF-16 。 这里没问题。 我知道一些字符,如反斜杠,单引号或双引号必须在Javascript上反斜杠转义,所以: \ becomes \\ ‘ becomes \’ ” becomes \” 在编写转换方法之前,我是否还有其他需要注意的警告? 编辑:到目前为止很棒的答案,我在问题的答案中添加一些参考资料,以帮助其他人。 Alex K.建议使用System.Web.HttpUtility.JavaScriptStringEncode ,我将其标记为正确的答案,因为我使用的是.Net 4.但是这个function以前的.Net版本都没有,所以我添加了一些其他资源在这里: CR becomes \r // Javascript string cannot be broke into more than 1 line LF becomes \n // Javascript string cannot be broke into more than 1 line TAB becomes \t Control […]

CodeDom和集合初始值设定项

有没有办法使用C#CodeDom生成字典初始化程序? 那些支持吗? 我想拥有: private IDictionary map = new Dictionary { { “Name”, “Value” }, … };

如何在C#中对编辑等字符串进行编码?

我正在编写需要使用RawPrinterHelper将数据打印到POS STAR打印机的C#应用​​程序。 我的打印工作正常,除非我发送像ŽĆČĐŠ这样的字符。 然后我打印出错误的数据。 到目前为止,我的研究给了我以下结果。 如果我在PowerShell中打开好的旧编辑并在txt文件中写下我的字符(ŽĆČĐŠ)并将其发送到打印机,我会按照我的意愿打印出来 我不能重复使用记事本 我怎样才能在C#中将我的sting编码为命令提示符(EIDTor)中的那个。 因此,当我向打印机发送数据时,它会在Windows环境中打印出Desire字体。 我也尝试使用Star驱动程序和他们的C#样本进行打印,直接将数据发送到打印机,但没有成功。 编辑: 我这样做了,对于其他人来说,使用C#直接在Star打印机上打印时遇到麻烦这里是Star IO Programming Tool的示例应用程序代码,用于使用他们的驱动程序。 using System; using System.Text; using StarMicronics.StarIO; // added as a reference from the “Dependencies” directory // requires StarIOPort.dll, which is copied to the output directory by the Post-Build event namespace TestEnkodera { class Program { static void Main(string[] args) { […]

.NET:如何判断编码是否支持字符串中的所有字符?

我有很多需要输出的文本,其中包括来自多种语言的各种字符。 有时我需要输出除Unicode之外的字符编码(例如,Shift-JIS或ISO-8859-2)的文本,以匹配它将要访问的页面。 如果文本具有编码无法处理的字符(例如,ISO-8859-2编码输出中的日文字符),则输出结果中出现奇数字符。 我可以逃避他们,但我宁愿这样做只有在真的有必要的时候。 所以,我的问题是:如果编码可以处理我的字符串中的所有字符,是否有一种方法可以提前告诉我? 编辑:我认为EncoderFallback可能是我问的问题的正确答案。 不幸的是,它似乎并不适合我的特殊情况。 我的想法是将字符转换为它们的HTML实体等价物(例如,モ而不是モ)。 但是,编码器只转换它找到的第一个这样的字符,如果我设置了Response.ContentEncoding,它根本就不会调用我的EncoderFallback。

有没有简单的方法来创建方法并在C#中动态设置它的主体?

我在字符串中持有方法体。 我想动态创建方法。 但我不知道,如何设置它的身体。 我看到使用CodeDom非常乏味。 我看到使用Emit和OpCodes。 有没有办法从字符串变量中使用现成的代码? string method_body = “return \”Hello, world!\”;”; //there is method body DynamicMethod dm = new System.Reflection.Emit.DynamicMethod(“My_method”, typeof(string), new Type[] { }); //any way to create method dynamically //any way to set body string result = (string)dm.Invoke(…); //I need write result in variable

如何确保我创建的filedownload是UTF-8? (而不是没有BOM的UTF-8)

我已经制作了一个下载function,可以将消息下载到CSV文件中(代码如下)。 现在当我用记事本或记事本++打开它时,我看到了这个: NYNYø╬║►░êö (这就是数据库btw中的内容) 现在,当我在Ms-Excel中打开它时,它会显示: éNYÃâ€â€â€â€ÃÃÃöö 当我在记事本++中打开它时,它说它是在’没有BOM的UTF8’中编码的。 当我将它(在记事本++中)编码为UTF-8时,一切顺利(也就是说,Excel也显示正确的字符) 但是我怎样才能确保我从我的代码创建的文件是UTF-8? 这是我的代码: public ActionResult DownloadPersonalMessages() { StringBuilder myCsv = new StringBuilder(); myCsv.Append(new DownloadService().GetPersonalMessages()); this.Response.ContentType = “text/csv”; Response.AddHeader(“content-disposition”, “attachment; filename=PersonalMessages.csv”); Response.ContentEncoding = Encoding.UTF8; Response.Write(myCsv.ToString()); Response.Flush(); Response.HeaderEncoding = Encoding.UTF8; return Content(“”); } 编辑: 我的函数现在返回带有此转换的ByteArray UTF8Encoding encoding = new UTF8Encoding(); return encoding.GetBytes(str); 我的下载现在是这样的: Response.AddHeader(“Content-Disposition”, “attachment; filename=PersonalMessages.csv”); return File(new DownloadService().GetPersonalMessages(), “text/csv”);