我正在用MIPS汇编语言编写一个子例程,将ASCII转换为UTF-16,反之亦然。然而,我找不到任何如何转换它的技巧。
谢谢你的点子。
发布于 2011-03-21 01:30:24
伪码,假设您的字节是八位字节,并且不需要零终止:
从ASCII到UTF-16的转换
MOVZX。你也可以注意正确的endianness.
UTF-16到ASCII的无损转换
发布于 2011-03-20 05:26:38
只要您只有ASCII码(只有16位码点),您就可以通过执行short <-> char-conversion只转换小于128的数字来直接转换为ASCII码。
发布于 2011-03-20 05:27:27
ASCII这个术语不是很具体。
ISO-646是Unicode UTF-16的子集。因此,‘7位’ASCII数字已经是Unicode (即,您只需将它们放在16位值的底部),而对于另一个方向,如果这就是您的意思,那么您所要做的就是从Unicode中取出低8位来获得ASCII。
另一方面,如果您需要ISO-8859-1 (拉丁文-1),则需要一个转换表。没有可以用汇编语言翻译成简单指令的公式。
https://stackoverflow.com/questions/5364977
复制相似问题