Übersetzungsschwierigkeiten…
Gerade eben bin ich über eine witzige Übersetzung in UltraEdit gestolpert:
Und das, obwohl den Shortcut bestimmt nicht als Ersatz für Strg+Z verwende…
Gerade eben bin ich über eine witzige Übersetzung in UltraEdit gestolpert:
Und das, obwohl den Shortcut bestimmt nicht als Ersatz für Strg+Z verwende…
Zum Wochenende ein wenig Linkdropping:
19 Rails Tricks Most Rails Coders Don’t Know
sowie ein nettes TextMate Cheat Sheet for Ruby and Rails developers
Kann sein, dass es in einem großen Datenbankprodukt namens Oracle keine Methode isNumeric oder ähnliches gibt, die mir sagt, ob ein String eine Zahl repräsentiert? Es kann…
Deswegen hier eine kleine Methode:
CREATE OR REPLACE FUNCTION f_makeNumber(inval IN VARCHAR2) RETURN NUMBER IS rv NUMBER; numCharSet VARCHAR2(32); BEGIN SELECT VALUE INTO numCharSet FROM nls_session_parameters WHERE parameter = 'NLS_NUMERIC_CHARACTERS'; BEGIN SELECT DECODE( NVL(LENGTH(TRANSLATE(TRIM(inval),' +-.,0123456789',' ')),0), 0,TO_NUMBER( CASE WHEN VALUE = '.,' THEN REPLACE(inval, ',','.') WHEN VALUE = ',.' THEN REPLACE(inval, '.',',') END ), NULL ) INTO rv FROM nls_session_parameters WHERE parameter = 'NLS_NUMERIC_CHARACTERS'; EXCEPTION WHEN invalid_number THEN rv := NULL; END; RETURN rv; END f_makeNumber; / |
Diese Methode gibt den Zahlenwert des Strings ‘inval’ zurück, falls es sich um eine Zahl handelt, ansonsten null. NLS_NUMERIC Characters werden berücksichtigt (2.0 und 2,0 werden beides zu Zahlen), Strings wie 2.000,0 lassen sich damit allerdings nicht verarbeiten.
Ich habe ja hier schon öfter von einer neuen Daily Fratze Version gesprochen. Bald ist es soweit.
Eine Vorschau kann man unter
http://dailyfratze.michael-simons.eu
erreichen.
Für Passwort und Benutzername bitte eine kurze Email an rotnroll666@mac.com schicken, ansonsten muss mit dem Bild hier vorlieb genommen werden:
Beruflich habe ich gerade mit einer Webanwendung zu tun, die mit Spring realisiert ist. Spring macht ähnlich viel Spaß wie Ruby und ist bis jetzt das erste J2EE Framework, dass mir von Anfang zusagte und es auch schaffte, mich zu begeistern.
Die Webanwendung ist komplett UTF-8 basiert. Soweit so gut. Leider mußte ich feststellen, dass Eingaben per form nicht so ankamen, wie ich mir das vorgestellt hatte, irgendwo ging das Characterset verloren.
Ich nutze zur Zeit Java 1.5.0.8, Apache Tomcat 5.5.17, Spring 1.2.8 sowie Hibernate 3.1.x. Irgendwo im Zusammenspiel der ersten drei Komponenten trat der Fehler auf, obwohl ich in allen beteiligten JSP Dateien den Content Type angegeben habe. Ich habe mir jetzt mit folgenden Filter beholfen, der dafür sorgt, dass UTF-8 auch als solches ankommt:
package filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class CharsetFilter implements Filter { FilterConfig config; String encoding = "UTF-8"; /** * @see javax.servlet.Filter#destroy() */ public void destroy() { } /** * Sets the character encoding on the request * @see javax.servlet.Filter#doFilter(javax.servlet.Servle tRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) */ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { request.setCharacterEncoding(encoding); chain.doFilter(request, response); } /** * @see javax.servlet.Filter#init(javax.servlet.FilterConf ig) */ public void init(FilterConfig config) throws ServletException { this.config = config; this.encoding = config.getInitParameter("requestEncoding"); } } |
Der Filter kann im web.xml einfach konfiguriert werden:
<filter> <filter-name> charsetFilter </filter-name> <filter-class> filter.CharsetFilter </filter-class> <init-param> <param-name>requestEncoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>charsetFilter</filter-name> <url-pattern>/app/html/*</url-pattern> </filter-mapping> |