GBase 8s使用emoji表情符号示例

近期有较多的客户询问:GBase 8s支不支持emoji表情符号的保存及查询?Emoji表情 和 某些特殊字符 在UTF-8编码中使用4个字节,GBase 8s支持的UTF-8编码允许使用1-4个字节,同时GBase 8s也支持GB18030-2000编码,该编码中允许使用1,2,4个字节。也就是说GBase 8s完全支持保存emoji表情符号。
以下是个操作emoji表情符号的示例:

1,数据库配置

1.1 环境变量中增加GL_USEGLU=1,使用zh_CN.utf8或者zh_CN.GB18030-2000字符集,整个环境变量如下:

export GBASEDBTDIR=/opt/gbase
export GBASEDBTSERVER=gbase01
export ONCONFIG=onconfig.${GBASEDBTSERVER}
export PATH=${GBASEDBTDIR}/bin:${PATH}

export DB_LOCALE=zh_CN.utf8
export CLIENT_LOCALE=zh_CN.utf8
export GL_USEGLU=1

1.2 在1.1的环境下创建新的数据库emoji

create database emoji in datadbs1 with log;

1.3 创建测试表

create table temoji (emoji varchar(255));

2,web服务器tomcat(测试使用7.0.99)上的测试代码

2.1 WEB-INF/lib目录下增加GBase 8s的JDBC驱动包

[root@bd lib]# ls
ifxjdbc.jar
[root@bd lib]# pwd
/home/tomcat/webapps/ROOT/WEB-INF/lib

2.2 提交页面t1.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Emoji 提交表单</title>
</head>
<body>
<form name="Form1" action="opt_emoji.jsp" method="post">
<input type="text" name="emoji" size="30"><br>
<input type="submit" value="提交" name="Submit">
</form>
</body>
</html>

2.3 处理提交页面代码opt_emoji.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"
    import="java.sql.*"
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>执行emoji插入,并且显示结果</title>
</head>
<body>
<%request.setCharacterEncoding("UTF-8");%>
<%
        String emojiString = request.getParameter("emoji");
        Connection connection = null;

        String url = "jdbc:gbasedbt-sqli://bd.gbase.club:9088/emoji:GBASEDBTSERVER=gbase01;DB_LOCA
LE=zh_CN.utf8;CLIENT_LOCALE=zh_CN.utf8";
        String user = "gbasedbt";
        String pass = "********";  // 用户密码,应满足密码强度要求
        String sql = "insert into temoji values(?)";
        String select_sql = "select * from temoji";

        try {
                Class.forName("com.gbasedbt.jdbc.IfxDriver");
                connection = DriverManager.getConnection(url, user, pass);

                PreparedStatement preparedStatement = connection.prepareStatement(sql);
                preparedStatement.setObject(1, emojiString);
                preparedStatement.execute();

                Statement statement = connection.createStatement();
                ResultSet resultSet = statement.executeQuery(select_sql);
                while (resultSet.next()){
                        out.println("字符串是:" + resultSet.getObject(1) + "<br>");
                }

                preparedStatement.close();
                connection.close();
        } catch (Exception e) {
                e.printStackTrace();
        }

%>
</body>
</html>

在ios手机上测试过程如下:
第一次提交
1st.png
第二次提交
2nd.png

标签: GBase 8s emoji, emoji

添加新评论