gpt4 book ai didi

.net - 如何在 f# 中将 char 转换为 unicode 值

转载 作者:行者123 更新时间:2023-12-02 05:53:46 27 4
gpt4 key购买 nike

我在 javascript 中制作了一个简单的 ceasar 密码,我需要在 f# 中再次制作它。我使用 javascript 中的 charCodeAt() 方法将字符串中的单个字符转换为它们的 unicode 值。有谁知道如何在 F# 中执行此操作,或者是否有与 charCodeAt 类似的命令?我已经搜索了几个小时,但时间不多了。

谢谢

最佳答案

要处理 Basic Multilingual Plane 之外的代码点,我相信您会想要使用 System.Char.ConvertToUtf32,例如

let input = "\uD800\uDC00\u0061\u0300\u00C6"
System.Char.ConvertToUtf32(input, 0) //gives 65536, which is good
int input.[0] //gives 55296, not what you want

要有效地使用它,您需要将它与 System.Globalization.StringInfo 的帮助相结合,否则,例如,如果您尝试 System.上例中的 Char.ConvertToUtf32(input, 1)。类似的东西,

open System.Globalization
let si = StringInfo(input)
let teArr = Array.init si.LengthInTextElements (fun i -> si.SubstringByTextElements(i,1))

System.Char.ConvertToUtf32(teArr.[0], 0) //65536
System.Char.ConvertToUtf32(teArr.[1], 0) //97
System.Char.ConvertToUtf32(teArr.[2], 0) //198

关于.net - 如何在 f# 中将 char 转换为 unicode 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5735698/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com