假设我有UTF8字符串module top;
aaa aaa();
assign aaa.bbb.pie[0].ccc.ddd = 0;
endmodule
module aaa();
bbb bbb();
endmodule
module bbb;
generate
for (i = 0; i < 2; i++) begin: pie
ccc ccc();
end
endgenerate
endmodule // bbb
module ccc;
wire ddd;
endmodule
。它有16个字符,占用18个字节。我怎样才能让haskell向我显示这个字符串占用的字节数?
我尝试过使用Data.ByteArray,Data.Text,ByteString,并且在每种情况下我都做得很短。
答案 0 :(得分:4)
您可以使用优秀的utf8-string包。
import qualified Data.ByteString as BS
import qualified Data.ByteString.UTF8 as UTF8
numBytesUtf8 :: String -> Int
numBytesUtf8 = BS.length . UTF8.fromString
然后,使用你的例子,
ghci> numBytesUtf8 "Hello Snowman ☃!"
18
当然,你可能不应该首先这样做。 UTF8.fromString
和BS.length
可能是您想要使用的函数,但您的字符串可能应该已经 bytestrings,以便您对编码它们需要多少字节感兴趣就这样。