Mysql不使用UTF-8

时间:2016-03-29 01:14:47

标签: mysql character-encoding

我像往常一样创建数据库:

CREATE DATABASE my_db CHARACTER SET utf8 COLLATE utf8_general_ci;

我已经转储了states.sql看起来很好但是当我将它们转储到数据库时,我会看到奇怪的符号和字母应该是POLISH图表。

当我尝试添加一些答案时:

default-character-set=utf8
character-set-server=utf8
default-collation=utf8_unicode_ci

到my.cf - mysql不想重启。

我也可以说,当我在phpmyadmin中做例如:

SELECT * FROM 'states' WHERE name = 'gorzów'

我使用非utf-8符号从mysql语法中得到错误。

哪里有问题?

1 个答案:

答案 0 :(得分:0)

gorzów变成gorzów了吗?那将是Mojibake。

这是

的经典案例
  • 客户端中的字节在utf8(正常)中正确编码。
  • 您可能默认与SET NAMES latin1(或set_charset('latin1')或...)相关联。 (应该是utf8。)
  • 表格中的列可能是CHARACTER SET utf8,也可能不是public class Mainmemo extends Activity { public ArrayList<User> arrayOfUsers = User.getUsers(); public ListView listView; public CustomUsersAdapter adapter; public SharedPreferences sharedpref; public Bundle extra; public static final String PREFERENCES_TODO = "TODO_List_Shared_Preferences"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_custom_list); populateUsersList(); } private void populateUsersList() { adapter = new CustomUsersAdapter(this, arrayOfUsers); listView = (ListView) findViewById(R.id.lvUsers); final TextView textview = (TextView) findViewById(R.id.empty); final Button manualaddmemo = (Button) findViewById(R.id.addmemo); listView.setEmptyView(textview); listView.setAdapter(adapter); listView.setItemsCanFocus(false); listView.setClickable(true); extra = getIntent().getExtras(); if (extra != null) { String text = extra.getString("text"); String date = extra.getString("dateoftext"); extra = null; savestringtopreferences(text, date); } manualaddmemo.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent newIntent = new Intent(Mainmemo.this, add_memo_to_list.class); startActivityForResult(newIntent, 0); } }); } private void savestringtopreferences(String text, String date) { sharedpref = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); SharedPreferences.Editor editor = sharedpref.edit(); JSONObject obj = new JSONObject(); try { obj.put("Name", text); obj.put("Category", date); } catch (JSONException e) { e.printStackTrace(); } editor.putString("JSON", obj.toString()); editor.apply(); } } ,但应该是这样。

由于您没有说明您使用的客户端,也没有说明您用于连接的语法,因此我不能更具体。也许http://mysql.rjweb.org/doc.php/charcoll#python或后面的部分会有所帮助。