相关疑难解决方法(0)

字符串替换C#中的变音符号

我想使用方法来创建用户友好的URL.因为我的网站是克罗地亚语,有些字符我不想剥离,而是用另一个替换它们.例如,这个字符串:
ŠĐĆŽšđčćž
需要是:sdccz-sdccz

所以,我想制作两个数组,一个包含要替换的字符,另一个数组包含替换字符:

string[] character = { "Š", "?", "?", "?", "Ž", "š", "?", "?", "?", "ž" };
string[] characterReplace = { "s", "d", "c", "c", "z", "s", "d", "c", "c", "z" };
Run Code Online (Sandbox Code Playgroud)

最后,这两个数组应该在一些方法中使用,它将获取字符串,查找匹配并替换它们.在php中我用preg_replace函数来处理这个问题.在C#中,这不起作用:

s = Regex.Replace(s, character, characterReplace);
Run Code Online (Sandbox Code Playgroud)


如果有人能提供帮助,我将不胜 谢谢

c# regex string replace

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

C# - 高效搜索并替换字符串中的char数组

我有例如

string str ='Àpple';
string strNew="";
char[] A = {'À','Á','Â','Ä'};
char[] a = {'à','á','â','ä'};
Run Code Online (Sandbox Code Playgroud)

我想通过str查看是否找到替换为Ascii代码'A'.所以结果应该是:

strNew = 'Apple';
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

for (int i = 0; i < str.Length; i++)
{ 
    if(str[i].CompareTo(A))
       strNew += 'A'
    else if(str[i].CompareTo(a)) 
       strNew +='a'
    else
       strNew += str[i];
}
Run Code Online (Sandbox Code Playgroud)

但是比较功能不起作用,那么我可以使用哪些其他功能呢?

c# asp.net

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

Asp.Net/C#何时Å等于A?(É等于E)

我正在向alfabet寻呼国家,因此国家开始AD,EH等.但我也想在a和pollewop上列出åbrohw.我尝试使用stringcompare选项提供string.starts,但它不起作用......

我正在运行sv-SE文化代码,如果这很重要......

米歇尔

c# culture diacritics

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

C#System.IO.Directory.CreateDirectory - 用utf-8字符创建目录?

我从utf-8编码文件中读取数据.然后,此文件的部分内容将用作新创建的文件夹的名称.但是,我的文件夹名称是:

bohou _120328而不是bohouš_120328

如何为新创建的文件夹名称设置正确的编码?谢谢.

编辑:

我正在以这种方式从文件中读取信息:

System.IO.StreamReader file = new System.IO.StreamReader(nameOfFile);

 while ((j = file.ReadLine()) != null) { 
    //manipulating string in j
 }
Run Code Online (Sandbox Code Playgroud)

然后用.创建目录

if (Directory.Exists(folder) == false) {
                                    Console.WriteLine("creating directory " + folder);
                                    System.IO.Directory.CreateDirectory(@folder);
                                } 
Run Code Online (Sandbox Code Playgroud)

如果我在我的Windows 7,64位计算机上运行我的应用程序,一切都很好.但是,如果我在其他使用WinXP等旧系统的计算机上运行,​​编码就错了,看起来就像这样

bohou?_120328
Run Code Online (Sandbox Code Playgroud)

在使用变量创建文件夹之前,我将i写入输出,但一切都很好.甚至文件夹名称也没问题.但不幸的是,只是在我的电脑上.

编辑2:

事情变得更加奇怪.我用过这段代码如何从.NET中的字符串中删除变音符号(重音符号)?删除变音符号,因为没有变音符号的名字对我来说很好.

但是,再次:

  1. 在我的计算机上运行代码产生bohous_120328
  2. 在其他计算机上运行代码和我的闪存盘产生bohou _120328

我发誓它是相同的代码,因为我复制了我的.exe文件.

调试器说在创建文件夹之前问题已经存在于我的字符串变量中.我不明白,在这种情况下环境如何影响我的变量.

会很高兴解释:-)

c# utf-8

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

Unicode字符串匹配

我想在Java中使用Unicode编码匹配两个字符串.我希望匹配以下内容:

"asdfeo"
"ásdfeó"
Run Code Online (Sandbox Code Playgroud)

如何在compareTo()方法中返回0 ?


编辑:

当我在没有变音符号的情况下将字符串键入自动完成视图时(由于某种原因我没有键盘来编写那些变音符号),我想在自动完成建议之间看到具有变音符号的对象.这就是为什么我要覆盖这个compareTo()方法.

java string unicode string-matching

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

在WinRT中是否有String.Normalize()替代?

在WinRT中有没有替代string.Normalize()的方法?我想简单地使用这种方法从输入字符串中删除重音,但我在WinRT中找不到任何方法.

windows-8 windows-runtime

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

将特殊字符转换为正常

我需要一种方法来转换像这样的特殊字符:

Helloæ

正常人物.所以这个词最终会成为Helloae.到目前为止,我已经尝试过HttpUtility.Decode,或者将UTF8转换为win1252的方法,但没有任何效果.是否有一些简单而通用的东西可以完成这项工作?

谢谢.

编辑

我尝试使用OC上的帖子来实现这两种方法.这是方法:

public static string ConvertUTF8ToWin1252(string _source)
{
    Encoding utf8 = new UTF8Encoding();
    Encoding win1252 = Encoding.GetEncoding(1252);

    byte[] input = _source.ToUTF8ByteArray();
    byte[] output = Encoding.Convert(utf8, win1252, input);

    return win1252.GetString(output);
}

// It should be noted that this method is expecting UTF-8 input only,
// so you probably should give it a more fitting name.
private static byte[] ToUTF8ByteArray(this string _str)
{
    Encoding encoding = new UTF8Encoding();
    return encoding.GetBytes(_str);
}
Run Code Online (Sandbox Code Playgroud)

但它没有奏效.字符串保持不变.

c# asp.net-mvc character-encoding special-characters

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

在SEO清洁Uri中删除的字符

我正在使用asp.net/C#而我正在为我正在创建的小型CMS系统创建独特的(?)uris.

我正在从我的文章标题中生成uri片段,例如,如果标题是"我的神奇文章",则uri将是www.website.com/news/my-amazing-article

这有两个部分.首先,你认为我需要删除哪些角色?我用" - "替换空格,我想我也应该删除"/"字符.你能再想到可能导致问题吗?"?" 也许?我应该删除所有非字母字符吗?

第二个问题,上面我提到过uris可能需要独一无二.在添加之前我打算检查uri列表以确保唯一性,但是我看到堆栈溢出使用了一个数字加上一个uri.我假设允许标题重复?你认为这会是一个更好的方法吗?

c# asp.net seo uri

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

如何将 UTF-8 字符转换为 ASCII 以在 URL 中使用?

我想自动转换 UTF-8 字符â Ù á ? ?a U a C G以便它们在 URL 中是可以接受的。

到目前为止,我有这个:

Encoding sourceEncoding = Encoding.GetEncoding(28591); // ISO-8859-1

byte[] asciiBytes = Encoding.Convert(sourceEncoding, Encoding.ASCII, sourceEncoding.GetBytes(<source text>));

String asciiString = Encoding.UTF8.GetString(asciiBytes);
Run Code Online (Sandbox Code Playgroud)

这种方法有两个问题:

  1. 这适用于某些字符(? 和 ?),但对于其他字符(â、Ù、á),它会返回一个问号代替该字符。
  2. 整个站点使用 UTF-8,而不是 ISO-8859-1,但是当我将 sourceEncoding 设置为 Encoding.UTF8 时,所有字符都转换为问号,因此它根本不起作用。

有什么想法可以让我完成这项工作吗?

.net c# asp.net dotnetnuke

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

将外来字符转换为正常字符

我有一个国际照片网站.当办公室上传来自国外的照片时,字幕和标题有时会有外国字符,例如:

1. François Hollande
2. ValŽrie Trierweiler
Run Code Online (Sandbox Code Playgroud)

并且这些存储在数据库(MySQL - latin1_swedish_ci)中,原样.现在,当用简单的英语搜索没有法语字符的弗朗索瓦时,这些特定的照片不会显示出来.

现在这不仅仅是法国人的问题 - 它也是其他国家.在我提交到我的数据库之前,如何将这些外来字符转换为普通字符,例如:

  1. 弗朗索瓦·奥朗德

vbscript asp-classic

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

Python - 如何更改像é这样的字母

python中是否有一个函数将é转换为e或í转换为i?

python string function diacritics

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

添加重音的最佳方式是什么?

我知道我想要添加到字母的口音ex: "´",我知道我想要添加它的字母ex:"a",我希望最终的结果是á.但这必须与至少5个字母一起使用:a,e,i,o,u和4个重音"´","","^","〜" .Right now i am working on a function with several diferentecase's`.有更好的方法吗?

我正在使用的方法:Letra:letter; caraterEspecial:specialCharater

switch (caraterEspecial)
            {
                case "´":
                    switch (letra)
                    {
                        case "a":
                            letra= "á";
                            break;
                        case "e":
                            letra= "é";
                            break;
                        case "i":
                             letra= "í";
                            break;
                        case "o":
                             letra= "ó";
                            break;
                        case "u":
                             letra= "ú";
                            break;
                    }
                    break;

                case "`":
                    switch (letra)
                    {
                        case "a":
                            letra= "à";
                            break;
                        case "e":
                            letra= "è";
                            break;
                        case "i":
                            letra= "ì"; …
Run Code Online (Sandbox Code Playgroud)

c#

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