albanian-xrm / albanian-xrm/PowerPlatform-Entity-Serializer

Non-ASCII characters are garbled

オープン
#5 コメント 4 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
C#
スター
3
フォーク
3
PR マージ指標
30日以内にマージされた PR はありません

説明

Dataverse has a bug: it uses Encoding.Default to serialize RemoteExecutionContext. Tested within US and Germany instance it defaults to Windows-1252 encoding.

The characters are all messed up.

For example Cyrillic
- `АаБбВвГгДдЕеËëЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯяРРР`
comes in as
- `АаБбВвГгДдЕеËëЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯяРРР`

To fix it, one must decode from 1252 and re-encode it in UTF-8:

```cs
var encoding = Encoding.GetEncoding(1252);
var inputFixedEncoding = Encoding.UTF8.GetString(encoding.GetBytes(input));
var remoteExecutionContext = EntitySerializer.Deserialize(inputFixedEncoding);
```

For on-prem users, Encoding.Default may be configured differently but is also 1252 by default. For online - well, I don't know how other envs handle it. So it should be a configurable option.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。