`
booby325
  • 浏览: 386530 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Mysql 特殊字符处理

阅读更多
import java.util.HashMap;
import java.util.Map;

/**
 * User: pdc738 Date: 06.22, 2010 Time: 3:36:20 PM 
 * To Encoder special character.
 * If you want to insert binary data into a string column (such as a BLOB column), the following characters must be represented by escape sequences. 
       NUL NUL byte (0x00). Represent this character by “\0” (a backslash followed by an ASCII “0” character). 
       \ Backslash (ASCII 92). Represent this character by “\\”. 
       ' Single quote (ASCII 39). Represent this character by “\'”. 
       " Double quote (ASCII 34). Represent this character by “\"”.  
 * Within a string, certain sequences have special meaning unless the NO_BACKSLASH_ESCAPES SQL mode is enabled. Each of these sequences begins with
   a backslash (“\”), known as the escape character. MySQL recognizes the following escape sequences in referencesMap
 */

public class MYSQLEncoder {
	
    private static Map<String,String> referencesMap = new HashMap<String,String>();

    static{
        referencesMap.put("'","\\'");
        referencesMap.put("\"","\\\"");
        referencesMap.put("\\","\\\\");
        
        referencesMap.put("\n","\\\n");
        referencesMap.put("\0","\\\0");
        referencesMap.put("\b","\\\b");
        referencesMap.put("\r","\\\r");
        referencesMap.put("\t","\\\t");
        referencesMap.put("\f","\\\f");
    }
    
    //escape sql tag with the source code.
	public static String encode(String source) {
		if (source == null)
			return "";
		
		StringBuffer sbuffer = new StringBuffer(source.length());
		
		for (int i = 0; i < source.length(); i++) {
			String c = source.substring(i,i+1);
			
			//System.out.println("c=" + c);
			//System.out.println(referencesMap.get(c));
			
			if (referencesMap.get(c) != null) {
				sbuffer.append(referencesMap.get(c));
			} else {
				sbuffer.append(c);
			}
		}
		return sbuffer.toString();
	}
	
	public static void main(String[] args){
		String tt = encode("They'are \"ok\". \\a");
		System.out.print(tt);
	}
}

 

分享到:
评论

相关推荐

    php javascript html mysql 特殊字符处理.txt

    ### PHP、JavaScript、HTML、MySQL特殊字符处理 在开发Web应用程序时,经常需要处理各种特殊字符,尤其是在PHP、JavaScript、HTML以及MySQL等技术栈中。本文将详细介绍这些技术栈中特殊字符的处理方法。 #### 一、...

    MySQL数据入库时特殊字符处理详解

    在一个字符串中,如果某个序列具有特殊的含义,每个序列以反斜线符号 (“”)开头,称为转义字符。 MySQL 识别下列转义字符: 0 一个 ASCII 0 (NUL) 字符。 ‘ 一个 ASCII 39 单引号 (“’”) 字符。 ” 一个 ASCII ...

    mysql保存微信昵称特殊字符的方法

    在MySQL中保存微信昵称,特别是包含特殊字符如表情符号(Emoji)的昵称时,可能会遇到插入数据时报错的问题。这是因为MySQL的默认UTF-8字符集(实际上是`utf8`,并非完全标准的UTF-8)仅支持最多3字节的字符,而一些...

    Python处理mysql特殊字符的问题

    总结来说,处理Python中的MySQL特殊字符问题,主要有以下几点: 1. 使用`str.format()`方法构建SQL语句,以避免因特殊字符引起的语法错误。 2. 当需要在`LIKE`操作符中使用`%`时,需要在Python字符串中使用四个`%`...

    mysql优化及中文处理

    优化MySQL数据库性能和处理中文字符集问题是数据库管理员和开发人员经常会遇到的任务。以下是对标题和描述中涉及知识点的详细说明: 1. **MySQL优化**: - **查询优化**:通过编写高效的SQL语句,减少全表扫描,...

    MySQL定义异常和异常处理详解

    `SQLSTATE`是一个5字符的字符串,而`mysql_error_code`是MySQL的数字错误代码。 例如,要定义一个与“ERROR 1148(42000)”对应的异常,你可以这样写: ```sql DECLARE command_not_allowed CONDITION FOR ...

    mysql 特殊命令总结

    - 如果表名中包含空格或其他特殊字符,需用反引号(`)包裹起来。 - 此命令可以用来帮助恢复丢失的表结构或迁移表结构到其他数据库。 ### 4. 查看表信息:`desc xiaonei;` **知识点详解:** - **命令功能**:查看...

    Mybatis在Mapper.xml文件中的转义字符处理方式.pdf

    通过这些案例,可以清晰地看到Mybatis在处理特殊字符和进行复杂SQL语句编写时的各种转义方法和技巧。开发者应灵活运用这些技术,确保SQL语句的正确性及可读性。总之,正确处理Mybatis在Mapper.xml文件中的转义字符,...

    url特殊字符

    总的来说,理解并正确处理URL中的特殊字符是网络开发中的基础技能,这关系到网页的正确加载、数据的传递以及接口的调用。对于开发者来说,掌握相关编码规则和使用相应工具,能够有效地避免因URL特殊字符引发的各类...

    mysql字符集设置

    MySQL字符集设置是数据库管理中的一个重要环节,尤其是在处理多语言数据或者有特殊字符需求的应用中。字符集决定了数据库、表以及字段如何存储和显示字符,影响到数据的正确性及兼容性。以下将详细讲解MySQL字符集的...

    mysql如何处理varchar与nvarchar类型中的特殊字符

    在MySQL中,`VARCHAR`和`NVARCHAR`是两种常见的字符串数据类型,它们在处理特殊字符时有不同的表现和处理方式。理解这两种类型的区别对于数据库设计和数据存储至关重要,特别是当处理包含非ASCII字符(如中文、日文...

    mysql常用字符串函数、字符串处理函数大全

    MySQL字符串函数是数据库操作中非常关键的一部分,它们用于处理和操作文本数据。以下是一些常见的MySQL字符串函数及其详细解释: 1. `ASCII(str)`:这个函数返回字符串`str`的第一个字符的ASCII码值。如果`str`为空...

    T3特殊字符检测

    在IT领域,尤其是在数据库管理、编程、文本处理等环节,特殊字符可能会引发各种问题,如数据格式错误、程序执行异常、安全风险等。因此,进行特殊字符检测是保证数据安全性和系统稳定性的关键步骤。 描述中的“可以...

    让我胃疼的MySQL字符集问题

    MySQL字符集问题一直以来都是数据库管理中的一个痛点,尤其是在处理多语言数据或者进行数据迁移时,不恰当的字符集设置可能导致乱码、无法存储特殊字符甚至数据丢失。这篇文档将深入探讨MySQL字符集的工作原理,常见...

    MySQL保存emoji表情

    因此,在设计与无线互联网相关的MySQL数据库时,推荐采用UTF-8mb4字符集来确保能够妥善处理emoji表情符号,避免出现数据存储或显示上的问题。 #### 限制 使用UTF-8mb4字符集的前提条件包括: - MySQL服务器版本需...

    MaBatis中的分页插件以及特殊字符处理

    这里我们将主要讨论PageHelper插件的使用以及在MyBatis中处理特殊字符的方法。 首先,让我们深入了解PageHelper插件。PageHelper是MyBatis的一个强大的分页插件,它支持Oracle、MySQL、PostgreSQL、SQL Server等...

    转义表单提交字符处理函数

    - **功能**:此函数用于准备字符串以安全地插入到MySQL数据库中,通过转义特殊字符来防止SQL注入。 - **语法**:`mysql_real_escape_string(string, connection)` - **参数**: - `string`:要转义的字符串。 -...

    插入数据库之前将特殊字符转义

    在编程和数据库交互时,确保数据安全至关重要,尤其是在插入数据到数据库之前,必须对特殊字符进行转义处理。这是因为不转义的特殊字符可能导致SQL注入等安全问题,从而造成数据破坏、信息泄露甚至整个系统的瘫痪。...

Global site tag (gtag.js) - Google Analytics