Ruby: "ä".upcase ? unicode?

Gast #453745
Lesenswert?
• ▲
▼
Als workaround:
1
wordarray.each do |word|
2
    word.gsub!(/[äöü]/) do |char| 
3
      case char
4
        when 'ä'
5
          then 'Ä'
6
        when 'ö'
7
          then 'Ö'
8
        when 'ü'
9
          then 'Ü'
10
      end
11
    end
12
    word.upcase!
13
  end



wie geht das elegant?
Gast #453749
Lesenswert?
• ▲
▼
Da "ä".upcase nicht geht, ist die Frage, wie es denn gemacht werden 
kann. Upcase ist locale-unsensitiv, d.h. nur Zeichen aus [a-z] match.
Ich möchte aber Umlaute auch vergrößern, noch besser wäre allerdings 
eine unspezifische Lösung, die auch für andere Schreibräume gilt.
Gast #453996
Lesenswert?
• ▲
▼
Wie lassen sich denn Zeichen einer Klasse durch spezifizierte 
Gegenstücke ersetzen? D.h. mit

str.gsub!( pattern, replacement )

soll ein ä aus pattern mit dem Ä aus replacement ersetzt werden. Ist das 
möglich?

Zumindest die case-Geschichte müßte doch eleganter gehen.
Gast #454349
Lesenswert?
• ▲
▼
ISO 8859-1

replace_char = 'àáâãäåæçèéêëìíîïðñòóôõöøùúûüý'
replace_with = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝ'

ruby, grossbuchstaben, umwandeln, uppercase, lowercase, upcase, 
downcase, umlaut, trema, krouzek, gross, klein, regexp, umwandeln, 
zeichen
Gast #454367
Lesenswert?
• ▲
▼
Da so jedes Zeichen immer nur durch ein anderes ersetzt werden kann, 
funktioniert diese Lösung natürlich nicht fürs ß, welches durch SS 
ersetzt werden müßte. (nur mal so als Denkanstoß, als Nicht-Rubi-Experte 
kann ich leider keine Lösung beitragen).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren