DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: xieqiongxi1
今日帖子: 0
在线用户: 5
导航: 论坛 -> 发布代码 斑竹:liumazi,ruralboy  
作者:
男 msfm (清洁工) ★☆☆☆☆ -
盒子活跃会员
2016/2/20 22:24:42
标题:
折腾了好久最近终于折腾成功了erlang+delphi+android+mysql插入中文 浏览:2706
加入我的收藏
楼主: 开始各种混乱 问人家都说 可以存中文 自己就是不成功, 好久终于妥协方案成功了 ,心里总别扭 这次又折腾,呀真成功了,一个人折腾这3种语言 真高血压 不过也挺高兴,梦想照进现实又近了一步 。
使用 werl  
mysql 数据库 utf8 序列 utf8_general_ci

procedure TForm1.Button1Click(Sender: TObject);
var
  sm:TStringStream;
begin
sm:=TStringStream.Create('',TEncoding.UTF8);
sm.WriteString('aaaaa中文');
IdTCPClient1.Host:='127.0.0.1';
IdTCPClient1.Port:=5002;
IdTCPClient1.Connect;
sm.Position:=0;
IdTCPClient1.IOHandler.Write(sm);
IdTCPClient1.Disconnect;
end;

-module(bb).
-export([start/0,close/1]).
-define(PORT,5002).
 start() ->

    AA= <<"我是汉字">>,

    io:format("hello erlang ~w~n",[[AA,byte_size(AA)]]),

    case    gen_tcp:listen( ?PORT,[binary,{active,true},{packet,0}]) 

    of

 

        {ok,LSocket}->

          io:format("listen port success ~w~n",[LSocket]),

          

          spawn(fun() -> loop(LSocket) end)    ,

          {ok,LSocket}

          ;

        {error,Reason}->

          io:format("listen port error Reason: ~w~n",[Reason]),

          {error,{cannot_listen,Reason}}

    end .

 

%%  server socket begin listen

loop(LSocket)->

        io:format("begin listen lsocket: ~n",[]),

    case gen_tcp:accept(LSocket)

    of 

        {ok,Socket}->

          io:format("receive client connect: ~p~n",[Socket]),

          begin_receive(Socket),

          spawn(fun()-> loop(LSocket) end)

        ;

        {error,Reason}->

          io:format("accept client  error: ~w~n",[Reason])

end.

 

begin_receive(Socket)->

          io:format("begin listen socket client data: ~n",[]),

          receive 

          {tcp,Socket,Data}->
%%io:format("::::::::::~p~n",Data),

          NewData= <<Data/binary>>,
mysql:start_link(conn, "127.0.0.1", 3306, "root", "htrd@123456", "test", undefined, utf8),
  
  
    
      Sql3=lists:concat(["insert into t (a,b) values ('",binary_to_list(NewData),"','",binary_to_list(NewData),"')"]),
      mysql:fetch(conn,Sql3),

          io:format("receive client data1: ~p~n",[NewData]),


 io:format("receive client data1: ~ts~n",[NewData]),
 io:format("receive client data1: ~w~n",[NewData]),
          %%   gen_tcp:send(Socket,NewData)    ,

          begin_receive(Socket);

          

          Data_2->

          io:format("receive client data2: ~w~n",[Data_2])

          end.

 

close(LSocket)->

gen_tcp:close(LSocket).

package test.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;

import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedWriter;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;

public class MainActivity extends AppCompatActivity {
    String strJson = "26";
       Thread thread;
        private Map<String, String> handlerMap = new HashMap<String, String>();
Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

//        thread = new ThreadLoadData();
//          thread.start();
btn=(Button)findViewById(R.id.button);
        btn.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
          thread = new ThreadLoadData();
          thread.start();
          }
        });
    }


    // 点击搜索按钮后进入数据的加载
        class ThreadLoadData extends Thread { // 一个线程变量只能用一次,所以要执行相同的动作时就必须定义一个Thread类而不是一个Thread变量
          @Override
          public void run() {
          try {
          // 联网下载指定数量的数据
          Socket socket = new Socket("192.168.1.103", 5002);
          // JSONObject json = new JSONObject();
          Log.e("----------","debug");
//          OutputStreamWriter osw = new OutputStreamWriter(socket
//          .getOutputStream());

          String AA="我是中文";
          byte[] byte_write=null;

          byte_write=AA.getBytes("UTF-8");
//AA.getBytes("UTF-8");
          OutputStream out_stream = null;
          InputStream in_stream = null;

          out_stream = socket.getOutputStream();
          in_stream = socket.getInputStream();
          byte[] byte_read=new byte[1024];
          int data_in_length=0;
          String read_in_str=null;
          out_stream.write(byte_write);
          System.out.println("socket write success");

          data_in_length=in_stream.read(byte_read);
          read_in_str=new String(byte_read,0,data_in_length, "UTF8");
          System.out.println("data_in_length:"+data_in_length+",read_in_str:"+read_in_str);

          socket.close();

//
//          BufferedWriter writer = new BufferedWriter(osw);
//          System.out.println("true");
//          JSONObject param = new JSONObject();
//          param.put("age", strJson.replace("\n", " "));
//          String ss="张三2";
//


//          String temp1 =ss;//  URLEncoder.encode(ss, "UTF-8");
////          temp1=   new String(ss.getBytes("UTF-8"), "ansi");
//
//          //      EncodingUtils.getString(ss,"GB2312");GBK
//          param.put("name", temp1);
//
//          System.out.println("true--->" + param.toString());
//          writer.write(param.toString());
//          writer.flush();
          } catch (Exception ex) {
          // this.destroy();
          System.out.println("ERR-->" + ex.getMessage());
          }
          }
          }

          public JSONObject getJSON() throws JSONException {
          return new JSONObject(strJson);
          }

}
----------------------------------------------
-
作者:
男 akay (akay) ★☆☆☆☆ -
普通会员
2016/2/20 22:52:13
1楼: 有时间也研究下erlang,确实是好东西。
----------------------------------------------
-
作者:
男 gaoyong_gy (gaoyong_gy) ★☆☆☆☆ -
盒子活跃会员
2016/2/22 10:59:22
2楼: 恭喜恭喜。


《Delphi XE6 android 编程入门教程》最后少量,购完即止,欲购从速
详情:http://blog.163.com/you888@188/blog/static/67239619201491849577/
----------
《Delphi XE6 android 编程入门教程》现已正式出版
注:所有demo已经升级到d10up1(Delphi最新版本)了。
请放心购买。仅仅剩下几十本了,需要的收藏的请速度拍下。
地址:http://item.taobao.com/item.htm?id=38770574598
作者本人亲自销售 。请认准作者联系电话18509293820,QQ120180714,邮箱you888@188.com。
买到假的了,就没有以后的升级内容了。
----------
----------------------------------------------
Delphi 的移动程序开发,是您不可再错失的机遇:http://blog.163.com/you888@188/blog/static/6723961920169319529515/
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行70.3125毫秒 RSS