我正在尝试将重音字符(例如ò
)存储在S3对象的元数据中。我正在使用REST API,根据此页面只接受US-ASCII:http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html
有没有办法将Scala或Java中的字符串从Bòrd
转换为B\u00F2rd
?
我尝试过使用Normalizer.normalize(str, Normalizer.Form.NFD)
,但提交给S3的字符仍然会导致错误,因为它显示为ò
。当我尝试打印出返回的String时,它也显示ò
。
答案 0 :(得分:1)
规范化的unicode字符串只是根据组成字符进行规范化,而不一定是ASCII。使用NFKC
更有可能将字符转换为ASCII格式,但肯定不会可靠地这样做。
听起来你想要的是转义非ascii字符。你可以用例如UnicodeEscaper来自commons-lang,UnicodeUnescaper来翻译。