我需要将以下字符'à'转换为'א'。
如果我使用以下site并选择第二个选项תיקון Encode חדש!
,则会执行此操作。
我需要在C#和JavaScript中编写相同的功能。
我该怎么做?
如果有人知道我想要达到的目标(更好地定义我的问题,因为我不确定我在寻找什么),我们也将不胜感激。
由于
答案 0 :(得分:1)
.Net Core
支持有限数量的编码代码页
不包括希伯来语CodePage 1255或28598(ISO 8859-8)。
您需要安装此NuGet包:System.Text.Encoding.CodePages v.4.4.0
(如有必要,请在NuGet控制台中运行dotnet restore
。)
要指定编码器,请使用CodePagesEncodingProvider()。希伯来语:
CodePagesEncodingProvider.Instance.GetEncoding(1255);
编码负责LTR→RTL格式化。
.NET Core 2.0的C#实现
using System.IO;
using System.Globalization;
using System.Text;
string InputText = "ààààùùìì";
string EncodedText = HebrewEncoder(InputText);
string DecodedText = HebrewDecoder(EncodedText);
private static string HebrewEncoder(string InputText)
{
Encoding LocalEncoding = CodePagesEncodingProvider
.Instance.GetEncoding(CultureInfo.CurrentCulture.TextInfo.ANSICodePage);
Encoding HebrewEncoding = CodePagesEncodingProvider.Instance.GetEncoding(1255);
string HebrewText = string.Empty;
byte[] OriginalBytes = LocalEncoding.GetBytes(InputText);
using (MemoryStream memstream = new MemoryStream(OriginalBytes, 0, OriginalBytes.Length))
using (StreamReader destReader = new StreamReader(memstream, HebrewEncoding))
{
memstream.Position = 0;
HebrewText = destReader.ReadToEnd();
};
return HebrewText;
}
private static string HebrewDecoder(string InputText)
{
Encoding LocalEncoding = CodePagesEncodingProvider
.Instance.GetEncoding(CultureInfo.CurrentCulture.TextInfo.ANSICodePage);
Encoding HebrewEncoding = CodePagesEncodingProvider.Instance.GetEncoding(1255);
string LocalEncodedText = string.Empty;
byte[] OriginalBytes = HebrewEncoding.GetBytes(InputText);
using (MemoryStream memstream = new MemoryStream(OriginalBytes, 0, OriginalBytes.Length))
using (StreamReader destReader = new StreamReader(memstream, LocalEncoding))
{
memstream.Position = 0;
LocalEncodedText = destReader.ReadToEnd();
};
return LocalEncodedText;
}
关于JavaScript
实施,可能取决于您的上下文/工具,我建议您看看这些已经可用的GitHub库:
text-encoding
Pure JS character encoding conversion.
JsChardet
node-iconv
这些SO问题/答案供参考:
Change JavaScript string encoding
Get encoding of page/iframe via JavaScript
答案 1 :(得分:0)
所有字符都在Unicode表中。您必须将字符串转换为Unicode值,然后检查您的字符值是否替换它并将其转换回来。
希望它有所帮助。