我有一个俄语短语“Купитьквартиру”。我需要将其转换为
%CA%F3%EF%E8%F2%FC+%EA%E2%E0%F0%F2%E8%F0%F3
编码看起来像ANSI
注意,如果我 Uri.EscapeDataString(“Купитьквартиру”),我会
%D0%9A%D1%83%D0%BF%D0%B8%D1%82%D1%8C%20%D0%BA%D0%B2%D0%B0%D1%80%D1%82%D0%B8%D1%80%D1%83
但这些字符串不相等。
有没有正确的转换方式?
答案 0 :(得分:1)
Uri.EscapeDataString
遵循网址规范RFC 3986,即使用UTF-8字符编码。
您需要在自定义M中编写自己的函数,如下所示:
let
To1251URL = (input as text) as text => let
ToBytes = Binary.ToList(Text.ToBinary(input, 1251)),
ToText = Text.Combine(List.Transform(ToBytes, (b) => "%" & Number.ToText(b, "X"))),
FixSpace = Text.Replace(ToText, "%20", "+")
in
FixSpace,
Applied = To1251URL("Купить квартиру")
in
Applied