How to escape single quotes for SQL insert…when string to insert is in a user generated variable

前端 未结 3 1187
无人及你
无人及你 2020-12-05 23:48

I am building an insert command to execute using jdbc. Part of it is to concatenate a user generated string...this all works until the user uses a string like this:

3条回答
  •  眼角桃花
    2020-12-06 00:31

    You can use StringEscapeUtils from the Apache Commons Lang library. Using this you can escape characters from html, xml, sql, etc. Look for method escapeXXX for your purpose. For reference: When i need to escape Html string?

    note: escapeSql was removed in Apache Commons Lang 3 (see Migrating StringEscapeUtils.escapeSql from commons.lang which references https://commons.apache.org/proper/commons-lang/article3_0.html#StringEscapeUtils.escapeSql)

    Eg:

    String str = FileUtils.readFileToString(new File("input.txt"));
            String results = StringEscapeUtils.escapeHtml(str);
            System.out.println(results);
    

    Input:

    
    Here is some "Text" that I'd like to be "escaped" for HTML
    & here is some Swedish: Tack. Vars?god.
    
    

    Output:

    <sometext>
    Here is some "Text" that I'd like to be "escaped" for HTML
    & here is some Swedish: Tack. Varsågod.
    </sometext>
    

提交回复
热议问题