48 lines
1.2 KiB
C#
48 lines
1.2 KiB
C#
using System.Text;
|
|
|
|
namespace Integrations.Source.Extensions
|
|
{
|
|
public static class SourceExtensions
|
|
{
|
|
public static string ReplaceUnfriendlyCharacters(this string source)
|
|
{
|
|
var result = new StringBuilder();
|
|
var quoteStart = false;
|
|
var quoteIndex = 0;
|
|
var index = 0;
|
|
|
|
foreach (var character in source)
|
|
{
|
|
if (character == '%')
|
|
{
|
|
result.Append('‰');
|
|
}
|
|
|
|
else if ((character == '"' || character == '\'') && index + 1 != source.Length)
|
|
{
|
|
if (quoteIndex > 0)
|
|
{
|
|
result.Append(!quoteStart ? "«" : "»");
|
|
quoteStart = !quoteStart;
|
|
}
|
|
|
|
else
|
|
{
|
|
result.Append('"');
|
|
}
|
|
|
|
quoteIndex++;
|
|
}
|
|
|
|
else
|
|
{
|
|
result.Append(character);
|
|
}
|
|
|
|
index++;
|
|
}
|
|
|
|
return result.ToString();
|
|
}
|
|
}
|
|
} |