summaryrefslogtreecommitdiff
path: root/doc/string/scrub.rdoc
blob: 1a5b1c79d07e22407a46ebfaa8948b2cbe873799 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Returns a copy of +self+ with each invalid byte sequence replaced
by the given +replacement_string+.

With no block given and no argument, replaces each invalid sequence
with the default replacement string
(<tt>"�"</tt> for a Unicode encoding, <tt>'?'</tt> otherwise):

  s = "foo\x81\x81bar"
  s.scrub # => "foo��bar"

With no block given and argument +replacement_string+ given,
replaces each invalid sequence with that string:

  "foo\x81\x81bar".scrub('xyzzy') # => "fooxyzzyxyzzybar"

With a block given, replaces each invalid sequence with the value
of the block:

  "foo\x81\x81bar".scrub {|bytes| p bytes; 'XYZZY' }
  # => "fooXYZZYXYZZYbar"

Output:

  "\x81"
  "\x81"