相关疑难解决方法(0)

如何识别字符串是否包含unicode字符?

我有一个字符串,我想知道它内部是否有unicode字符.(如果它完全包含ASCII或不包含ASCII)

我怎样才能做到这一点?

谢谢!

c# asp.net unicode

34
推荐指数
3
解决办法
7万
查看次数

如何将8位字符转换为7位字符?(即Ü到U)

我正在寻找伪代码或示例代码,以将更高位的ascii字符(例如,将其扩展为ascii 154)转换为U(ascii 85).

我最初的猜测是,由于只有大约25个ascii字符与7bit ascii字符类似,因此必须使用翻译数组.

如果您能想到其他任何事情,请告诉我.

ascii

21
推荐指数
6
解决办法
2万
查看次数

如何从Ruby中的字符串中删除所有非ASCII字符

我似乎是一个非常简单和非常需要的方法.我需要从字符串中删除所有非ASCII字符.例如©等.请参阅以下示例.

#coding: utf-8
s = " Hello this a mixed string © that I made."
puts s.encoding
puts s.encode
Run Code Online (Sandbox Code Playgroud)

输出:

UTF-8
Hello this a mixed str
Run Code Online (Sandbox Code Playgroud)

我做的.

当我将其提供给Watir时,会产生以下错误:不兼容的字符编码:UTF-8和ASCII-8BIT

所以我的问题是我想在使用它之前去除所有非ASCII字符.我不知道源字符串"s"使用哪种编码.

我一直在搜索和试验很长一段时间.

如果我尝试使用

  puts s.encode('ASCII-8BIT')
Run Code Online (Sandbox Code Playgroud)

它给出了错误:

 : "\xC2\xA9" from UTF-8 to ASCII-8BIT (Encoding::UndefinedConversionError)
Run Code Online (Sandbox Code Playgroud)

ruby watir

17
推荐指数
2
解决办法
1万
查看次数

将元数据添加到CloudBlob时无效的字符异常

任务

上传文件到Azure Blob Storage与原来的文件名,并指定文件名作为meta-dataCloudBlob

问题

这些字符是不允许的,meta-data但可以接受为blob名称:

š Š ñ Ñ ç Ç ÿ Ÿ ž Ž Ð œ Œ « » éèëêð ÉÈËÊ àâä ÀÁÂÃÄÅ àáâãäå ÙÚÛÜ ùúûüµ òóôõöø ÒÓÔÕÖØ ìíîï ÌÍÎÏ
Run Code Online (Sandbox Code Playgroud)

  • 有没有办法将这些字符存储在meta-data?我们是否遗漏了一些导致此异常的设置?
  • 这些字符中的大多数是某些语言中的标准字形,那么如何处理呢?
  • 是否有任何文件可以提供有关此问题的建议?我发现blobmeta-data命名约定,但没有关于数据本身!

var dirtyFileName      = file.FileName;
var normalizedFileName = file.FileName.CleanOffDiacriticAndNonASCII();

// Blob name accepts almost characters that are acceptable as filenames in Windows
var blob = container.GetBlobReference(dirtyFileName);

//Upload content to …
Run Code Online (Sandbox Code Playgroud)

character-encoding azure azure-storage azure-storage-blobs

14
推荐指数
3
解决办法
7173
查看次数

在C#中,如何检测字符是否为非ASCII字符?

我想在C#中检查char是否包含非ASCII字符.什么是检查特殊字符,如最好的方式?还是?

c# string unicode ascii char

12
推荐指数
3
解决办法
1万
查看次数

C#.NET中的UTF-16安全子字符串

我想得到一个给定长度的子字符串150.但是,我想确保我不切断unicode字符之间的字符串.

例如,请参阅以下代码:

var str = "Hello world!";
var substr = str.Substring(0, 6);
Run Code Online (Sandbox Code Playgroud)

substr是一个无效的字符串,因为笑脸字符被切成两半.

相反,我想要一个如下功能:

var str = "Hello world!";
var substr = str.UnicodeSafeSubstring(0, 6);
Run Code Online (Sandbox Code Playgroud)

其中substr包含"你好"

作为参考,以下是我在Objective-C中使用的方法 rangeOfComposedCharacterSequencesForRange

NSString* str = @"Hello world!";
NSRange range = [message rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, 6)];
NSString* substr = [message substringWithRange:range]];
Run Code Online (Sandbox Code Playgroud)

C#中的等效代码是什么?

.net c# string unicode xamarin.ios

12
推荐指数
2
解决办法
1366
查看次数

当string包含html实体时,在Javascript中设置text节点的nodeValue

当我用文本节点设置值时

node.nodeValue="string with &#xxxx; sort of characters"
Run Code Online (Sandbox Code Playgroud)

&符号被逃脱.是否有捷径可寻?

javascript dom html-entities nodevalue

8
推荐指数
2
解决办法
1万
查看次数

C++从字符串中删除非ASCII字符

在你开始之前; 是的我知道这是一个重复的问题,是的,我已经查看了发布的解决方案.我的问题是我无法让他们工作.

bool invalidChar (char c)
{ 
    return !isprint((unsigned)c); 
}
void stripUnicode(string & str)
{
    str.erase(remove_if(str.begin(),str.end(), invalidChar), str.end()); 
}
Run Code Online (Sandbox Code Playgroud)

我在"Prusæus,Ægyptians"上测试了这种方法,它也没有做任何我试图替代isprint的方法isalnum

真正的问题发生在我的程序的另一部分我转换string-> wstring-> string.如果string-> wstring转换中有unicode字符,则转换为balks.

参考:

如何从字符串中删除非ASCII字符?(在C#中)

如何从c ++中的字符串中删除所有非字母数字字符?

编辑:

我仍然想删除所有非ASCII字符,无论它是否有帮助,这里是我崩溃的地方:

// Convert to wstring
wchar_t* UnicodeTextBuffer = new wchar_t[ANSIWord.length()+1];
wmemset(UnicodeTextBuffer, 0, ANSIWord.length()+1);
mbstowcs(UnicodeTextBuffer, ANSIWord.c_str(), ANSIWord.length());
wWord = UnicodeTextBuffer; //CRASH
Run Code Online (Sandbox Code Playgroud)

错误对话框

MSVC++调试库

调试断言失败!

Program:// myproject

文件:f:\ dd\vctools\crt_bld\self_x86\crt\src\isctype.c

行://在上面

表达:(无符号)(C + 1)<= 256

编辑:

进一步复杂化问题:我正在读取的.txt文件是ANSI编码的.内部的一切都应该是有效的.

解:

bool invalidChar (char c) 
{  
    return !(c>=0 && c <128);   
} …
Run Code Online (Sandbox Code Playgroud)

c++ string ascii

7
推荐指数
1
解决办法
3万
查看次数

在C#中替换字符串中的符号

我们如何在C#中替换字符串中的符号?

像这样

输入: "?Click me."

输出:"Click me.";

c# regex

5
推荐指数
1
解决办法
5926
查看次数

Excel VBA删除字符串中的Unicode字符

如何删除VBA中不属于ASCII类别的所有特殊字符?

这些是我的字符串中出现的一些符号,需要将其删除.ŒœŠšƒ还有更多这样的角色.

这不属于ASCII类别,因为您可以看到这个http://www.ascii.cl/htmlcodes.htm

我试过这样的事

strName = Replace(strName, ChrW(376), " ")
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

请帮我解决这个问题.

谢谢Jeevan

unicode excel vba non-ascii-characters

4
推荐指数
1
解决办法
2万
查看次数

从SQL Server varchar列中删除奇怪的字符(带帽子的A)

一些奇怪的字符存储在其中一个表中.它们似乎来自.csv饲料,因此我对此没有多少控制权.

Hello Kitty Essential Accessory Kit
Run Code Online (Sandbox Code Playgroud)

我该如何清理它并删除这些字符.我可以在db级别或C#中执行此操作.

编辑

根据评论中收到的建议.我也在研究如何在饲料水平上纠正它.这是关于它的更多信息.

  1. 饲料来自第三方.
  2. 我在记事本++中打开了feed并检查了编码菜单我在'encode in ansi'前面看到了点,所以我相信这是文件的编码
  3. 这就是它在记事本++"Hello Kitty Essential配件套件"中的显示方式
  4. 但有一件奇怪的事.当我从csv文件中搜索powershel中的那一行时.它提出了这一行.我没有看到这些奇怪的角色..

c# t-sql sql-server

3
推荐指数
1
解决办法
1722
查看次数

在C#中将字符串dd-MM-yyyy转换为DateTime yyyy-MM-dd

我有一个这种格式的字符串:

21?-?10?-?2014? ?15?:?40?:?30
Run Code Online (Sandbox Code Playgroud)

我想以格式制作一个DateTime:

2014-?10?-?21 ?15?:?40?:?30
Run Code Online (Sandbox Code Playgroud)

我试过了:

DateTime dt = DateTime.ParseExact("21?-?10?-?2014? ?15?:?40?:?30", "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

但没有运气,它抛出异常 String was not recognized as a valid DateTime

编辑

我也尝试过:

DateTime dt = DateTime.ParseExact("21-?10?-?2014? ?15?:?40?:?30", "dd-MM-yyyy HH:mm:ss", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

在两个参数中使用相同的格式.例外情况是一样的,所以问题不在于格式之间的区别.我以前检查过.

c# datetime

-1
推荐指数
1
解决办法
2万
查看次数

问号(“?”)附加到字符串

所以我正在编写一个程序并使用其他人编写的现有库。他们的库正在调用 TheMovieDatabase.com 并检索有关电影的信息,包括 Youtube 预告片名称,如“sErD7Y00R_8”。

当我调试并查看存储该值的预告片名称字符串变量时,它显示为“sErD7Y00R_8”,但是当它插入我的数据库或打印到控制台时,它似乎附加了一个?(问号)到最后,显示如下:“sErD7Y00R_8?”

这显然给我带来了一些问题。我不明白它为什么这样做以及如何解决它。我只能猜测它是一些非常规文本字符或其他东西,但这只是一个猜测。

这是包装器库的链接: https://github.com/LordMike/TMDbLib/

这是我在包装器库中调用的方法,传入 ID 143049:

TMDbLib.Objects.Movies.Movie tmdbMovie = client.GetMovie(id, MovieMethods.Credits | MovieMethods.Keywords | MovieMethods.Images | MovieMethods.Trailers | MovieMethods.Reviews | MovieMethods.Releases);
Run Code Online (Sandbox Code Playgroud)

这是之后立即打印到控制台的内容:

Console.WriteLine("'" + tmdbMovie.Trailers.Youtube[i].Source + "'");
Run Code Online (Sandbox Code Playgroud)

.Length 属性返回 12,因此它看起来是 1 个字符,它不会在调试器中显示,但会打印为 ? 在控制台中

根据评论,我打印出了 Encoding.GetBytes 详细信息:

Encoding the entire string:
System.Text.UTF7Encoding       : 20  38  :73 45 72 44 37 59 30 30 52 2B 41 46 38 2D 38 2B 49 41 34 2D 
System.Text.UTF8Encoding       : 14  39  :73 45 72 44 37 …
Run Code Online (Sandbox Code Playgroud)

c# string unicode strip

-1
推荐指数
1
解决办法
7415
查看次数