Tag: ascii

使用C#检测文件名字符是否被视为国际字符

我已经编写了一个小型控制台应用程序(下面的源代码)来定位和选择性地重命名包含国际字符的文件,因为它们是大多数源代码控制系统不断痛苦的根源(下面有一些背景知识)。 我正在使用的代码有一个简单的字典,其中包含要查找和替换的字符(并且使用多个字节的存储来核对每个其他字符),但它感觉非常hackish。 什么是正确的方法(a)找出角色是否是国际性的? (b)最佳ASCII替换字符是什么? 让我提供一些背景信息,说明为什么需要这样做。 碰巧的是,丹麦Å字符在UTF-8中有两种不同的编码,两者都代表相同的符号。 这些被称为NFC和NFD编码。 Windows和Linux默认会创建NFC编码,但要遵守它给出的任何编码。 Mac会将所有名称(保存到HFS +分区时)转换为NFD,因此会为在Windows上创建的文件名返回不同的字节流。 这有效地打破了Subversion,Git和许多其他不关心正确处理这种情况的实用程序。 我目前正在评估Mercurial,后者在处理国际角色方面更加糟糕。对这些问题相当厌倦,无论是源代码控制还是国际角色都必须去,所以我们在这里。 我目前的实施: public class Checker { private Dictionary internationals = new Dictionary(); private List keep = new List(); private List seen = new List(); public Checker() { internationals.Add( ‘æ’, “ae” ); internationals.Add( ‘ø’, “oe” ); internationals.Add( ‘å’, “aa” ); internationals.Add( ‘Æ’, “Ae” ); internationals.Add( […]

如何获取ASCII后面的二进制代码(C#)

我试图找出如何将输入转换为控制台,二进制; 如何在C#中进行这样的转换? 先感谢您。

如何使用unix行结尾将字符串转换为字节?

如果我使用以下方法将字符串转换为字节 byte[] ascii = new System.Text.ASCIIEncoding().GetBytes(myString); 然后我得到的字节使用Windows行结尾。 如何使用Unix行结尾转换它?

检测日文字符输入和“Romajis”(ASCII)

我希望能够检测到用户的时间: 输入日文字符(汉字或假名) 输入罗马字符(专用) 目前我正在使用这样的ASCII范围(C#语法): string searchKeyWord = Console.ReadLine(); var romajis = from c in searchKeyWord where c >= ‘ ‘ && c <= '~' select c; if (romajis.Any()) { // Romajis } else { // Japanese input } 有更好,更快(更强)……的方法吗? 编辑:该问题可以推广到具有非ascii字符集的任何其他语言。

如何为枚举char(1)数据库字段实现C#enum?

好的,所以我有一个char(1)类型的数据库字段,它有少量可能的状态代码(例如’F’=失败,’U’=未知等)。 我想要一个与这些状态相对应的C#enum类。 我可以: public enum StatusCode : byte { Unknown = (byte) ‘U’, Failure = (byte) ‘F’, // etc. } 到现在为止还挺好。 但是在从数据库返回的DataTable中,列值是System.Data.SqlTypes.SqlString实例。 显然有一些问题从C#字符串(甚至是C#字符)转换为C#字节(因为C#char实际上是UTF-16代码点)。 但在这种情况下,我知道值被约束为一个小集合,如果此集合之外的值通过,代码应抛出exception。 考虑到这一点,这样做的最佳方法是什么? 从SqlString转换为字节是否安全? Convert.ToByte()会更好吗? 简单地使用开关/案例构造将值交叉到枚举中会更好吗? 我正在寻找“最好”的方法,不仅在获得正确的结果方面,而且在代码清晰度方面。 我想我也可以使用一些常量 public const char UnknownStatus = ‘U’; public const char FailureStatus = ‘F’; 但如果可能的话,我宁愿使用枚举。 有什么想法吗? 编辑:为了澄清我想要做什么,我希望在我的代码中经常使用这些值。 例如,我希望能够做到这样的事情: public void DoSomething(StatusCode currentStatus) { if(currentStatus == StatusCode.Failure) { […]

C#随机密码生成器

这是代码:(passwordLengthBox是NumericUpDown Box,r和k是随机数) private void generateButton_Click(object sender, EventArgs e) { int r, k; int passwordLength = (Int32)passwordLengthBox.Value; string password = “”; char[] upperCase = { ‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’, ‘H’, ‘I’, ‘J’, ‘K’, ‘L’, ‘M’, ‘N’, ‘O’, ‘P’, ‘Q’, ‘R’, ‘S’, ‘T’, ‘U’, ‘V’, ‘W’, ‘X’, ‘Y’, ‘Z’ }; char[] lowerCase = { […]

查找.NET中的哪些编码是ASCII兼容的

实际上是否有任何简单的方法可以找到.NET中的哪些编码与ASCII兼容? (基于Nyerguds评论中提出的问题。)

URL编码ASCII / UTF16字符

我正在尝试对一些字符串进行URL编码,但是我对.Net框架提供的方法存在问题。 例如,我正在尝试包含’â’字符的编码字符串。 例如,根据w3schools ,我希望这个特征被编码为’%E2’(我必须调用的PHP系统也期望这个……)。 我尝试使用这些方法: System.Web.HttpUtility.UrlEncode(“â”); System.Web.HttpUtility.UrlPathEncode(“â”); Uri.EscapeUriString(“â”); Uri.EscapeDataString(“â”); 但是,它们都将此字符编码为:%C3%A2 我想这与.Net中的字符串是UTF-16编码的事实有关。 所以为了避免这个问题,我可以写这个例子: “%” + ((int)character).ToString(“X”) 但是,我想知道框架是否已经有内置方法(我在这里或其他地方找不到任何答案,为什么我的角色以这种方式编码)?

如何将unicode字符转换为c#中的转义ascii等效字符

我开始使用包含编码的u​​nicode字符“ &#xfc; ”的字符串。 我将字符串传递给执行某些逻辑并返回另一个字符串的对象。 该字符串将原始编码字符转换为其unicode等效“ ü ”。 我需要恢复原始编码字符,但到目前为止还不能。 我已经尝试使用HttpUtility.HtmlEncode()方法但是返回“ &#252; ”这是不一样的。 有人可以帮忙吗?

FtpWebRequest错误:550 ASCII模式下不允许使用大小

我试图通过匿名FTP从远程FTP文件中获取文件大小。 public static long GetSize(string ftpPath) { try { FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpPath)); request.Proxy = null; request.Credentials = new NetworkCredential(“anonymous”, “´”); request.UseBinary = true; request.Method = WebRequestMethods.Ftp.GetFileSize; FtpWebResponse response = (FtpWebResponse)request.GetResponse(); long size = response.ContentLength; response.Close(); return size; } catch (WebException e) { string status = ((FtpWebResponse)e.Response).StatusDescription; MessageBox.Show(status); return 0; } } 这当前返回错误“550 ASCII模式下不允许的大小”。 […]