Tag: unicode

Unicode到Mazovia编码冗余char

我一直在处理这个问题几个小时。 我正在将一个包含波兰变音符号ąśółńźć等的字符串保存到文件中,但我必须使用的软件才能读取该文件只能使用Mazovia编码 ,这是一种非常古老的编码,不受Microsoft Encoding类的支持。 .Net字符串由UTF-16字符组成,因此我一直使用此代码将Unicode转换为Mazovia。 string rekord = (linia.Substring(0, linia.Length – 1)) + Environment.NewLine; string rekordMazovia = Kodowanie.UnicodeNaMazovia(rekord); File.AppendAllText(sciezka, rekordMazovia); public static class Kodowanie { public static string UnicodeNaMazovia(string tekst) { return tekst .Replace((char)0x104, (char)0x8F) //Ą .Replace((char)0x106, (char)0x95) //Ć .Replace((char)0x118, (char)0x90) //Ę .Replace((char)0x141, (char)0x9C) //Ł .Replace((char)0x143, (char)0xA5) //Ń .Replace((char)0xD3, (char)0xA3) //Ó .Replace((char)0x15A, (char)0x98) //Ś .Replace((char)0x179, […]

在代码隐藏中使用时,Unicode字符(U + 1FXYZ)无法正确输出

在我的代码隐藏中,我正在尝试返回unicode字符的hex代码。 我正在尝试输出Segoe UI Symbol字体中的任何一个字符: http : //www.istartedsomething.com/uploads/emojisegoe.html 。 例如,“U + 1F60A”。 如果我通过我的xaml这样做,例如: FontFamily=”Segoe UI Symbol” Text=”😊” 然后它工作正常。 但是,如果我绑定值以通过.cs转换器类检索它,则不会出现正确的字符: FontFamily=”Segoe UI Symbol” Text=”{Binding Pivot7Days.EmojiWeekendSummary, Converter={StaticResource EmoticonConverter}}” 转换器类: switch (input) { case “happy”: return “\u1F60A”; case “sad”: return “\u1F60B”; default: return “\u1F610”; } 我得到一个完全不同的字符,后跟返回字符串中的最后一个字符,例如’A’,’B’或’0’。 例如,当我看到一张带舌头的脸(U + 1F60B)时,我会得到以下内容: 我在后面的代码中使用了不正确的转义序列吗?

如何从SQL Server 2000 TEXT列中的C#String存储UTF-8字节

我有一个现有的SQL Server 2000数据库,它在文本列中存储文本的UTF-8表示。 我没有选择修改列的类型,并且必须能够将来自C#程序的非ASCII Unicode数据存储到该列中。 这是代码: sqlcmd.CommandText = “INSERT INTO Notes ” + “(UserID, LocationID, Note) ” + “VALUES (” + Note.UserId.ToString() + “, ” + Note.LocationID.ToString() + “, ” + “@note); ” + “SELECT CAST(SCOPE_IDENTITY() AS BIGINT) “; SqlParameter noteparam = new SqlParameter( “@note”, System.Data.SqlDbType.Text, int.MaxValue ); 在这一点上,我尝试了几种不同的方法将我的UTF-8数据放入参数中。 例如: // METHOD ONE byte[] bytes […]

使用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( […]

如何确定我的字符串是否包含“微”Unicode字符?

我有一个带有实验室数据的Excel电子表格,如下所示: µg/L (ppb) 我想测试希腊字母“μ”的存在,如果发现我需要做一些特别的事情。 通常,我会写这样的东西: if ( cell.StartsWith(matchSequence) ) { //.. <– universal symbol for "magic" 🙂 } 我知道框架中有一个Encoding API,但是我应该只将它用于这个边缘情况还是仅仅从字符映射中复制希腊微符号? 我如何测试这个unicode角色的存在? 角色地图看起来像一个“便宜”的修复,以后会咬我(我为一家跨国公司工作)。 我想做一些可维护的东西,而不仅仅是一些疯狂的数学 – 巫毒转换,只适用于这种边缘情况。 我想我在这里要求最佳实践建议。 谢谢!

检测日文字符输入和“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字符集的任何其他语言。

为什么某些字符文字导致Java中的语法错误?

在最新版的JavaSpecialists时事通讯中,作者提到了一段在Java中无法编译的代码 public class A1 { Character aChar = ‘\u000d’; } 尝试编译它,你会收到一个错误,例如: A1.java:2:字符文字中的非法行结尾 字符aChar =’\ u000d’; ^ 为什么等效的c#代码没有出现这样的问题? public class CharacterFixture { char aChar = ‘\u000d’; } 我错过了什么吗? 编辑:我的初衷是c#编译器如何解析unicode文件正确(如果是这样)以及为什么java仍然应该坚持使用不正确的(如果是这样)解析? 编辑:我还想恢复原始问题标题? 为什么这么重的编辑,我强烈怀疑它严重改变了我的意图。

在字符串中定义4字节UTF-16字符

我读过一个关于UTF-8,UTF-16和UCS-2的问题 ,几乎所有答案都说明UCS-2已经过时,C#使用UTF-16。 但是,我在C#中创建4字节字符U + 1D11E的所有尝试都失败了,所以我实际上认为C#仅使用UTF-16的UCS-2子集。 有我的尝试: string s = “\u1D11E”; // gives the 2 character string “ᴑE”, because \u1D11 is ᴑ string s = (char) 0x1D11E; // won’t compile because of an overflow string s = Encoding.Unicode.GetString(new byte[] {0xD8, 0x34, 0xDD, 0x1E}); // gives 㓘ờ C#字符串真的是UTF-16还是它们实际上是UCS-2? 如果它们是UTF-16,我怎样才能将小提琴谱号放入我的C#弦中?

C#按钮文本Unicode字符

C#不希望在按钮上放置Unicode字符。 如果我将\ u2129放在按钮的Text属性中,按钮会显示\ u2129,而不是Unicode字符(例如 – 我选择了2129,因为我可以在机器上当前活动的字体中看到它)。 我之前看过这个问题, 链接文字 ,但问题没有真正回答,只是绕过。 我正在研究遍布全球的应用程序,并且不想安装所有字体,更多的是“不要”,有很多我怀疑我正在处理的机器有足够的磁盘空间。 我们的海外销售代理商提供Unicode字符“数字”。 还有另一种方法吗? 另外,(好奇心),为什么它不起作用?

如何在C#中找到Unicode字符的双向字符类型?

有什么办法可以在C#中找到Unicode字符的双向字符类型吗? 我想查看字符串中的字符并确定它们是否都是强LTR,强RTL,强LTR和中性的混合等。