textview-android输出语句乱码,怎么改

问题描述

android输出语句乱码,怎么改

public class MainActivity extends Activity {
private EditText fileName;
private EditText content;
private TextView textContent;
private static final String TAG = "simplefile";
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fileName = (EditText) this.findViewById(R.id.fileName);
content = (EditText) this.findViewById(R.id.content);
textContent = (TextView) this.findViewById(R.id.textContent);
Button saveBtn = (Button)this.findViewById(R.id.saveButton);
Button viewBtn = (Button)this.findViewById(R.id.viewButton);

saveBtn.setOnClickListener(listener);//保存按钮事件监听
viewBtn.setOnClickListener(listener);//查看按钮事件监听
}

private View.OnClickListener listener = new View.OnClickListener(){ public void onClick(View v) {
// TODO Auto-generated method stub
Button button = (Button) v;
String nameStr = fileName.getText().toString().trim();
String contentStr = content.getText().toString();

switch(button.getId())
{
case R.id.saveButton :
int resId_s = R.string.success;
OutputStream fileOS = null;
try {

fileOS = MainActivity.this.openFileOutput(nameStr+".txt",
Context.MODE_APPEND);
fileOS.write(contentStr.getBytes());
fileOS.close();

                    } catch (Exception e) {
                        resId_s = R.string.failure;
                        e.printStackTrace();
                    }
                    //界面提示
                    Toast.makeText(MainActivity.this, resId_s, Toast.LENGTH_LONG).show();
                    Log.i(TAG, nameStr);
                    Log.i(TAG, contentStr);
                    break;
                case R.id.viewButton :
                    int resId_v        = R.string.readSucc;
                    InputStream fileIS = null;
                    String contentSt   = null;
                    try {
                        fileIS    = MainActivity.this.openFileInput(nameStr+".txt");
                        ByteArrayOutputStream oStream = new ByteArrayOutputStream();
                        byte[] buffer = new byte[1024];
                        int len = -1;
                        while((len = fileIS.read(buffer)) != -1){
                            oStream.write(buffer, 0, len);
                        }
                        contentSt = oStream.toString("GBK");
                        //contentSt = oStream.toString();
                        oStream.close();
                        fileIS.close();
                    } catch (Exception e) {
                        resId_v = R.string.readFail;
                        e.printStackTrace();
                        return;
                    }
                    textContent.setText(contentSt);
                    Log.i(TAG, contentSt);
                    Toast.makeText(MainActivity.this, resId_v, Toast.LENGTH_LONG).show();
                    Log.i(TAG, nameStr);
                    break;
            }
        }
    };
}

解决方案

http://blog.csdn.net/wannshan/article/details/7221329

解决方案二:

我运行了你的代码。

这句代码contentSt = oStream.toString("GBK"); 你以GBK编码方式读取流的内容,但是,你写入时是以什么方式编码的呢?

我猜测默认是utf-8编码,于是把contentSt = oStream.toString("GBK"); 改为contentSt = oStream.toString("utf-8"); 输出正确的数据。

时间: 2024-08-04 08:35:35

textview-android输出语句乱码,怎么改的相关文章

android工程输出中文乱码 Java工程正常

问题描述 android工程输出中文乱码 Java工程正常 新建android工程用EditText输入数据,异或加密输出,输出中文为乱码,新建Java工程输出正常,跪求大神指点.百度都快翻烂了./(ㄒoㄒ)/~~ 解决方案 你输出密文时没有指定解码格式?android和java工程默认使用的解码可能不同 解决方案二: 应该是项目制定的编码不同吧? 解决方案三: 转码试试看能正常么有可能是两面的编码格式不一样

jdbc-数据在数据库中查询显示是中文,输出到页面转换为utf-8之后,输出为乱码,求解

问题描述 数据在数据库中查询显示是中文,输出到页面转换为utf-8之后,输出为乱码,求解 <%@page import="java.sql.ResultSet"%> <%@page import="java.sql.Statement"%> <%@page import="java.sql.DriverManager"%> <%@page import="java.sql.Connection&

android studio-中文乱码 Android studio 双引号里的中文乱码

问题描述 中文乱码 Android studio 双引号里的中文乱码 Android studio 双引号里的中文乱码 群里的大神是怎么解决的 解决方案 编码格式不对,你是拷贝的不是,格式不对,你去preference里边,有个编码格式,改一下,要不是utf-8那你就选gbk2312,当然还有其他的格式 解决方案二: android studio 中文乱码

Android Retrofit 中文乱码问题的解决办法

Android Retrofit 中文乱码问题的解决办法 使用retrofit和rxjava,提交数据时需注意,当数据中有中文时,传到后台,可能会是乱码,需处理: 解决: 1.GET请求改成POST; 2.参数Field改成Query 3.加上@FormUrlEncoded 如下: @FormUrlEncoded @POST("/test/test") Call<Response> register(@Field("name") String name)

对象-这条android java语句真的很复杂,求解析

问题描述 这条android java语句真的很复杂,求解析 tripListView.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> arg0, View arg1,int position, long id) {Toast.makeText(ListViewExample2.this,"您选择的是" + list.get(position)

Python基本语法_输入/输出语句详解

目录 目录 前言 输入 raw_input input raw_input 和 input 的区别 输出 print print 基本格式化输出 print复杂格式化输出 flags标志位 width宽度 precision精度 dictionaryName字典 print自动换行底层实现 最后 前言 程序最基本需要的两个要素,一个是数据,另外一个便是逻辑.而控制语句在程序中扮演的角色便是实现程序的逻辑,即数据的导向和对数据的操作.当然,这并不代表,程序中的数据的行为只能通过控制语句来实.但在P

system-为啥我的输出语句都输出不来

问题描述 为啥我的输出语句都输出不来 我写的java代码输出语句输出不出来,咋回事呢有时候好使,有的时候不好使 解决方案 是不是文件没有编译啊.加上了打印语句后,文件没有编译.可以清理一下项目.eclipse 项目->清理 解决方案二: 碰到过类似的 不使用System.out.print(),使用System.out.println(); 不知道是不是同样的问题 解决方案三: 查看是否编译 环境 程序 人品(呵呵)

php加一句如果在数据库里没某条记录,则显示提示消息。判断语句应该怎么改?求大神抱大腿!

问题描述 php加一句如果在数据库里没某条记录,则显示提示消息.判断语句应该怎么改?求大神抱大腿! function xuesheng(){ $c=M('case')->field('id')->where(""upid=5 and state=1"")->findAll(); foreach($c as $k => $v){ $caseid[]=$v['id']; } $wherecase="" and cid in (

android webView.loadData乱码解决

android webView.loadData 乱码解决 webView.getSettings().setDefaultTextEncodingName("UTF -8");//设置默认为utf-8 webView.loadData(htmlData, "text/html", "UTF -8");//API提供的标准用法,无法解决乱码问题 webView.loadData(htmlData, "text/html; charset