2016-04-24 81 views
0

我有一个android应用程序,它连接到一个PHP脚本,然后从数据库中提取数据并返回结果。除语言设置外,它都可以正常工作。我将语言设置为dainsh和UTF-8,我可以想到的所有地方,并且当我将它发送到数据库时,它是丹麦语,但返回值不是丹麦语。 下面是Android的设置语言安卓到php-mysqli

URL url = new URL(selectUrl); 
       HttpURLConnection httpUrlConncetion = (HttpURLConnection) url.openConnection(); 
       httpUrlConncetion.setRequestMethod("POST"); 
       httpUrlConncetion.setDoInput(true); 
       httpUrlConncetion.setConnectTimeout(10000); 
       httpUrlConncetion.setRequestProperty("Accept-Language", "da_DK"); 
       httpUrlConncetion.setRequestProperty("Content-type", "application/json"); 
       httpUrlConncetion.connect(); 

       String line = ""; 
       StringBuilder sb = new StringBuilder(); 
       int Httpresult = httpUrlConncetion.getResponseCode(); 
       Log.d(TAG, httpUrlConncetion.getResponseMessage().toString()); 
       if (Httpresult == HttpURLConnection.HTTP_OK) { 
        InputStream inputStream = httpUrlConncetion.getInputStream(); 
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "iso-8859-1")); 


        while ((line = reader.readLine()) != null) { 
         sb.append(line); 
         list.add(line); 
        } 
        result=sb.toString(); 

        for(int i=0;i<list.size();i++){ 
         Log.d(TAG, "min nye list" + list.get(i) + "\n"); 
        } 

我的PHP脚本调用和logcat的说

enter image description here 是, “minegen”: “N \ u00f8gler”}这就是问题所在。它应该是丹麦的“nøgler”。 的PHP已经这样设置在连接文件到数据库: “mysqli_set_charset($ CON,‘UTF-8’);

和mysqli的数据库已被设置为丹麦语 - 这样

enter image description here

而且我做的表格获得丹麦字符表 enter image description here

所以我缺少什么? 检查时,任何帮助,将不胜感激:)

+0

我认为这不是mysqli,而是PHP编码。尝试设置mb_internal_encoding(“UTF-8”); – vishwakarma09

+0

这看起来像一个逃脱的Unicode字符。尝试'json_encode'上的'JSON_UNESCAPED_UNICODE'标志。 http://php.net/json_encode –

回答

0

我曾经遇到这样一个问题,它是关于节省表情符号,像你这样的,我把所有的字符集设置正确,但无论我怎么做,没想到这么finaly我最终使用进行urlencode($内容)的工作保存到时我的数据库和urldecode($内容),当检索数据

0

我有波斯文字像这样的问题,我通过工作对我来说糟糕的方式解决它。我刚定义了我自己的编码,并提出了两个函数FAtoEN(s)ENtoFA(s)FAtoEN使用键盘按键将每个波斯文字符更改为英文字符。例如把键改为“k”,因为当键盘是波斯语时我在键盘上使用k键,而我想写ن。另一个功能也是这样做的。