相关疑难解决方法(0)

替换C#中的字符(ascii)

我收到了一个包含以下字符的文件:à,è,ì,ò,ù - À.我需要做的是用普通字符替换那些字符,例如:à= a,è= e等......这是我的代码到目前为止:

StreamWriter sw = new StreamWriter(@"C:/JoinerOutput.csv");
string path = @"C:/Joiner.csv";
string line = File.ReadAllText(path);

if (line.Contains("à"))
{
    string asAscii = Encoding.ASCII.GetString(Encoding.Convert(Encoding.UTF8, Encoding.GetEncoding(Encoding.ASCII.EncodingName, new EncoderReplacementFallback("a"), new DecoderExceptionFallback()), Encoding.UTF8.GetBytes(line)));
    Console.WriteLine(asAscii);
    Console.ReadLine();

    sw.WriteLine(asAscii);
    sw.Flush();
}
Run Code Online (Sandbox Code Playgroud)

基本上,这会在文件中搜索特定字符,并将其替换为另一个字符.我遇到的问题是我的if语句不起作用.我该如何解决这个问题?

这是输入文件的示例:

Dimàkàtso Mokgàlo
Màmà Ràtlàdi
Koos Nèl
Pàsèkà Modisè
Jèrèmiàh Morèmi
Khèthiwè Buthèlèzi
Tiànà Pillày
Viviàn Màswàngànyè
Thirèshàn Rèddy
Wàdè Cornèlius
ènos Nètshimbupfè

如果使用,则输出为:line = line.Replace('à','a'); :

Ch�rl�n� Kirst�n
M�m� R�tl�di
Koos N�l
P�s�k� Modis�
J�r�mi�h Mor�mi
Kh�thiw� Buth�l�zi
Ti�n� Pill�y
Vivi�n M�sw�ng�ny� …

c# ascii

9
推荐指数
3
解决办法
2万
查看次数

URL路由:创建友好URL时处理空格和非法字符

我已经看过很多关于URL路由的讨论,以及很多很棒的建议......但在现实世界中,我没有看过的一件事是:

  1. 使用空格和非法字符创建友好URL
  2. 查询数据库

假设你正在建立一个医疗网站,里面有文章类别和可选的子类别.(1对多).(可以使用任何一个例子,但医学领域有很多长话)


示例类别/子/文章结构:

  1. 您的一般健康(类别)
    • 自然健康(子类别)
      1. 你身体的免疫系统以及为什么需要帮助.(文章)
      2. 植物和草药真的是解决方案吗?
      3. 我应该吃强化食品吗?
    • 顺势疗法
      1. 什么是顺势疗法药?
    • 健康饮食
      1. 你应该每天喝10杯咖啡吗?
      2. 有机蔬菜值得吗?
      3. 汉堡王是邪恶的吗?
      4. "法式咖啡馆"或美式咖啡更健康吗?
  2. 疾病和病症(类别)
    • 自身免疫障碍(子类别)
      1. 人的头号杀手是一种疾病
      2. 如何获得帮助
    • 遗传条件
      1. 怀孕前预防脊柱裂.
      2. 你是否倾向于活很长时间?
  3. FooBar博士的个人建议(分类)
    1. 我对草药和自然疗法的看法(文章 - 没有子类别)
    2. 你为什么要关心自己的健康?
    3. 可以正确饮食并保持良好的饮食习惯.
    4. 不流血的手术成熟了吗?

在这样的结构中,如果你去,你将会有一些LOOONG网址:/ {Category}/{subcategory}/{Article Title}

此外,还有很多非法字符,比如#!?'é"等

因此,问题是:

  1. 你会如何处理非法角色和空间?(优点和缺点?)
  2. 你会处理从数据库中获取此信息吗?
    • 换句话说,您是否相信数据库可以找到项目,传递标题,或者拉出所有标题并在代码中找到密钥以获取密钥以传递给数据库(两次调用数据库)?

注意:我总是看到漂亮的漂亮例子,如/ products/beverages/Short-Product-Name /如何处理一些丑陋的例子^ _ ^

url routing character

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

比较法国字符Î的问题

当比较"Île"和"Ile"时,C#并不认为它们是相同的.

    string.Equals("Île", "Ile", StringComparison.InvariantCultureIgnoreCase)
Run Code Online (Sandbox Code Playgroud)

对于我遇到的所有其他重音字符,比较工作正常.

我应该使用另一种比较功能吗?

c# string culture compare

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

用C#中未加修饰的对应物替换重音/语音字符

复制249087

我有一堆用户生成的地址,可能包含带变音符号的字符.什么是最有效(即通用)的方式(除了简单的替换)自动将任何这样的字符转换为最接近的英语等价物?

例如,任何一个都会变成一个

æ会成为两个独立的字母ae

ç将成为c

任何èéêë都会成为e

等等所有可能的字母变化(最好不必查找和编码字母的每个变音形式的查找).

(注意:我必须将这些地址传递给第三方软件,该软件无法打印除英文字符以外的任何内容.我宁愿该软件能够处理它们,但我无法控制它.)

编辑:没关系......找到答案[这里] [2].在我发布之后,它出现在问题右侧的"相关"部分,但不是在我之前的搜索中或作为事前建议.嗯.在任何情况下,我都将'diacritics'标签添加到另一个问题中.

编辑2:Jeez!关闭之后谁投票了-1?

c# string diacritics

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

规范化SQL Server中的unicode字符串?

SQL Server中是否有一个函数来规范化unicode字符串?例如

UPDATE Orders SET Notes = NormalizeString(Notes, 'FormC')
Run Code Online (Sandbox Code Playgroud)

Unicode规范化表单:

  • Ç omposition(Ç):A+ ¨Ä
  • d ecomposition(d):Ä变为A+¨
  • 兼容成分(KC):A+ ¨+ ?+ n变为Ä+ f+ i+n
  • 兼容分解(KD):Ä+ ?+ n变为A+ ¨+ f+ i+n

我找不到任何内置函数,所以我假设没有.


理想情况下,如果只有一个,那么我今天碰巧需要表格C:

Unicode规范化形式C,规范组合.将每个分解的分组(由基本字符加组合字符组成)转换为规范的预组合等效项.例如,A +¨变为Ä.

也可以看看

sql-server globalization unicode internationalization sql-server-2008-r2

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

如何检查Unicode字符在.Net中是否具有变音符号?

我正在开发一种用于自动语言检测的启发式算法,并想知道给定的字母是否具有变音符号(例如"ÐàäèîÊóëüòóðà" - 所有字母都有变音符号).如果可能的话,我最好能得到变音符号的类型.

我浏览了UnicodeCategoryenum,但没有找到任何可以帮助我的东西.

c# unicode diacritics

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

折叠案例以加快比较

"strasse".Equals("STRAße",StringComparison.InvariantCultureIgnoreCase)
Run Code Online (Sandbox Code Playgroud)

这返回真。哪个是正确的。不幸的是,当我将其中一个存储在 postgres 中时,它认为在进行不区分大小写的匹配(例如, with ~*)时它们不一样。我也用 citext 测试过。

因此,一种解决方案是预先折叠案例,从而将strasse这些值中的任何一个存储在另一列中。然后我可以索引并搜索匹配项。

我一直在寻找如何在 C# 中折叠 case 一段时间,但一直无法在 C# 中找到解决方案。显然,知识是存在的,因为它可以正确比较这些字符串,我只是找不到从哪里获取它。

一种解决方案是生成一个 perl 进程perl -E "binmode STDOUT, ':utf8'; binmode STDIN, ':utf8'; while (<>) { print fc }",将进程的 C# 端也设置为这些管道的 utf8,然后通过 perl 发送文本以折叠案例。但必须有比这更好的方法。

c# case-folding

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

正则表达式替换 - 多个字符

我有20个左右的字符,我需要用一个文本块中的各种其他字符替换.有没有办法在单个正则表达式中执行此操作,这个正则表达式是什么?或者在.NET中有更简单的方法吗?

例如,我的映射表的摘录是

œ=>oež
=>
zŸ=>
YÀ=>
AÁ=>
AÂ=>
AÃ=>
AÄ=> AE

.net c# regex

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

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
查看次数

System.NotSupportedException:没有数据可用于编码1252

我正在与“ 信任商务指南”一起工作,以了解如何生成付款令牌,该令牌将允许客户使用TC Trustee Host付款表格。他们的开发团队为我提供了有关如何检索此令牌的示例。

using System;
using System.Net;
using System.IO;
using System.Text;
using System.Collections;
using System.Web;

/** @class TCToken
 * An example class for generating a TrustCommerce Trustee Token
 */
public class TCToken
{

    public static void Main(string [] args)
    {
        string custid = "123456";
        string password = "XXXXXX";
        try {
            // Adapted from http://www.west-wind.com/presentations/dotnetWebRequest/dotnetWebRequest.htm
            string gateway_post_address = "https://vault.trustcommerce.com/trustee/token.php";
            HttpWebRequest req = (HttpWebRequest) WebRequest.Create(gateway_post_address);

            // A sixty second timeout.
            req.Timeout = 60000;

            string post_data = "custid=" + HttpUtility.UrlEncode(custid) + …
Run Code Online (Sandbox Code Playgroud)

c#

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