如何扩展String类,并附加一个名为__bytes的方法?
解决方法
Ruby已经有一个String#each_byte方法,它被别名为String#个字节.
在Ruby 1.9之前的字符串相当于字节数组,即一个字符被假定为一个字节.对于ASCII文本和各种文本编码(如Win-1252和ISO-8859-1)而言,这是非常好的,但与Unicode不太相似,我们在网络上越来越多地看到. Ruby 1.9是Unicode感知的,字符串不再被认为是由字节组成,而是由字符组成,可以是多个字节长.
因此,如果您尝试以单个字节操作文本,则需要确保输入为ASCII或至少基于单字节的字符集.如果您可能有多字节字符,则应使用带有U标志的String#each_char或String.split(//)或String.unpack.
What does // mean in
String.split(//)
//与使用“”相同.告诉拆分返回字符.您也可以通常使用chars
.