Sivo 悉见

IOS表情存入MYSQL数据库失败

匿名 · 更新于 2017/6/6

先确定下字符集的修改是否有落实到具体字段上:

1
		<div class="line number2 index1 alt1" style="word-wrap: normal; height: 14px; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px 0.5em 0px 1em !important; border-radius: 0px !important; white-space: pre !important; background: none !important;">2</div>

		<div class="line number3 index2 alt2" style="word-wrap: normal; height: 14px; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px 0.5em 0px 1em !important; border-radius: 0px !important; white-space: pre !important; background: none !important;">3</div>

		<div class="line number4 index3 alt1" style="word-wrap: normal; height: 14px; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px 0.5em 0px 1em !important; border-radius: 0px !important; white-space: pre !important; background: none !important;">4</div>

		<div class="line number5 index4 alt2" style="word-wrap: normal; height: 14px; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px 0.5em 0px 1em !important; border-radius: 0px !important; white-space: pre !important; background: none !important;">5</div>
		</td>
		<td class="code" style="width: 661px; margin: 0px !important; padding: 0px !important; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; box-sizing: content-box !important; min-height: auto !important; border-radius: 0px !important; background: none !important;">
		<div class="container" style="width: 1070px; margin: 0px auto; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: relative !important; right: auto !important; top: auto !important; vertical-align: baseline !important; box-sizing: content-box !important; min-height: auto !important; padding: 0px !important; border-radius: 0px !important; background: none !important;">
		<div class="line number1 index0 alt2" style="border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px 1em !important; border-radius: 0px !important; background: none !important;"><code class="sql keyword" style="font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-weight: 700 !important; min-height: auto !important; margin: 0px !important; padding: 0px !important; border-radius: 0px !important; color: rgb(255, 120, 0) !important; background: none !important;">SELECT</code>&nbsp;<code class="sql plain" style="font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px !important; border-radius: 0px !important; color: rgb(0, 0, 0) !important; background: none !important;">character_set_name,collation_name</code></div>

		<div class="line number2 index1 alt1" style="border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px 1em !important; border-radius: 0px !important; background: none !important;"><code class="sql spaces" style="font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px !important; border-radius: 0px !important; background: none !important;">&nbsp;</code><code class="sql keyword" style="font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-weight: 700 !important; min-height: auto !important; margin: 0px !important; padding: 0px !important; border-radius: 0px !important; color: rgb(255, 120, 0) !important; background: none !important;">FROM</code>&nbsp;<code class="sql plain" style="font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px !important; border-radius: 0px !important; color: rgb(0, 0, 0) !important; background: none !important;">information_schema.columns</code></div>

		<div class="line number3 index2 alt2" style="border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px 1em !important; border-radius: 0px !important; background: none !important;"><code class="sql keyword" style="font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-weight: 700 !important; min-height: auto !important; margin: 0px !important; padding: 0px !important; border-radius: 0px !important; color: rgb(255, 120, 0) !important; background: none !important;">WHERE</code>&nbsp;<code class="sql plain" style="font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px !important; border-radius: 0px !important; color: rgb(0, 0, 0) !important; background: none !important;">table_schema&nbsp;=&nbsp;</code><code class="sql string" style="font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px !important; border-radius: 0px !important; color: rgb(0, 0, 255) !important; background: none !important;">&#39;app&#39;</code></div>

		<div class="line number4 index3 alt1" style="border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px 1em !important; border-radius: 0px !important; background: none !important;"><code class="sql spaces" style="font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px !important; border-radius: 0px !important; background: none !important;">&nbsp;&nbsp;</code><code class="sql color1" style="font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px !important; border-radius: 0px !important; color: gray !important; background: none !important;">AND</code>&nbsp;<code class="sql plain" style="font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px !important; border-radius: 0px !important; color: rgb(0, 0, 0) !important; background: none !important;">table_name&nbsp;=&nbsp;</code><code class="sql string" style="font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px !important; border-radius: 0px !important; color: rgb(0, 0, 255) !important; background: none !important;">&#39;cm_user&#39;</code></div>

		<div class="line number5 index4 alt2" style="border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px 1em !important; border-radius: 0px !important; background: none !important;"><code class="sql spaces" style="font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px !important; border-radius: 0px !important; background: none !important;">&nbsp;&nbsp;</code><code class="sql color1" style="font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px !important; border-radius: 0px !important; color: gray !important; background: none !important;">AND</code>&nbsp;<code class="sql plain" style="font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px !important; border-radius: 0px !important; color: rgb(0, 0, 0) !important; background: none !important;">column_name&nbsp;=&nbsp;</code><code class="sql string" style="font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px !important; border-radius: 0px !important; color: rgb(0, 0, 255) !important; background: none !important;">&#39;user_name&#39;</code><code class="sql plain" style="font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px !important; border-radius: 0px !important; color: rgb(0, 0, 0) !important; background: none !important;">;</code></div>
		</div>
		</td>
	</tr>
</tbody>

都应该是utf8mb4;

针对直接在数据库添加emoji数据也失败的情况, 

如添加?

先在数据库客户端执行

1
set names 'utf8mb4';

再去做更新或者插入的动作;

如果可以, 解决的方向是调整客户端连接数据库所使用的字符集, 一般和连接数据库使用的driver有关;

如果不行, 再确认下mysql服务的[mysqld]配置下是否以下配置

1
		<div class="line number2 index1 alt1" style="word-wrap: normal; height: 14px; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px 0.5em 0px 1em !important; border-radius: 0px !important; white-space: pre !important; background: none !important;">2</div>

		<div class="line number3 index2 alt2" style="word-wrap: normal; height: 14px; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px 0.5em 0px 1em !important; border-radius: 0px !important; white-space: pre !important; background: none !important;">3</div>
		</td>
		<td class="code" style="width: 661px; margin: 0px !important; padding: 0px !important; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; box-sizing: content-box !important; min-height: auto !important; border-radius: 0px !important; background: none !important;">
		<div class="container" style="width: 1070px; margin: 0px auto; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: relative !important; right: auto !important; top: auto !important; vertical-align: baseline !important; box-sizing: content-box !important; min-height: auto !important; padding: 0px !important; border-radius: 0px !important; background: none !important;">
		<div class="line number1 index0 alt2" style="border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px 1em !important; border-radius: 0px !important; background: none !important;"><code class="sql plain" style="font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px !important; border-radius: 0px !important; color: rgb(0, 0, 0) !important; background: none !important;">skip-</code><code class="sql keyword" style="font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-weight: 700 !important; min-height: auto !important; margin: 0px !important; padding: 0px !important; border-radius: 0px !important; color: rgb(255, 120, 0) !important; background: none !important;">character</code><code class="sql plain" style="font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px !important; border-radius: 0px !important; color: rgb(0, 0, 0) !important; background: none !important;">-</code><code class="sql keyword" style="font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-weight: 700 !important; min-height: auto !important; margin: 0px !important; padding: 0px !important; border-radius: 0px !important; color: rgb(255, 120, 0) !important; background: none !important;">set</code><code class="sql plain" style="font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px !important; border-radius: 0px !important; color: rgb(0, 0, 0) !important; background: none !important;">-client-handshake</code></div>

		<div class="line number2 index1 alt1" style="border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px 1em !important; border-radius: 0px !important; background: none !important;"><code class="sql keyword" style="font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-weight: 700 !important; min-height: auto !important; margin: 0px !important; padding: 0px !important; border-radius: 0px !important; color: rgb(255, 120, 0) !important; background: none !important;">character</code><code class="sql plain" style="font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px !important; border-radius: 0px !important; color: rgb(0, 0, 0) !important; background: none !important;">-</code><code class="sql keyword" style="font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-weight: 700 !important; min-height: auto !important; margin: 0px !important; padding: 0px !important; border-radius: 0px !important; color: rgb(255, 120, 0) !important; background: none !important;">set</code><code class="sql plain" style="font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px !important; border-radius: 0px !important; color: rgb(0, 0, 0) !important; background: none !important;">-server&nbsp;=&nbsp;utf8mb4</code></div>

		<div class="line number3 index2 alt2" style="border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px 1em !important; border-radius: 0px !important; background: none !important;"><code class="sql plain" style="font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; border: 0px !important; bottom: auto !important; float: none !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; margin: 0px !important; padding: 0px !important; border-radius: 0px !important; color: rgb(0, 0, 0) !important; background: none !important;">collation-server&nbsp;=&nbsp;utf8mb4_general_ci</code></div>
		</div>
		</td>
	</tr>
</tbody>
 

场景:微信昵称中包含表情,保存到MySQL中报出SQLException :Incorrect string value: '\xF0\xA1\x8B\xBE\xE5\xA2...' for column 'name'

解决方案:Mysql 从5.5.3版本开始支持4字节的utf8编码,如果你的Mysql数据库是5.5.3+,按照以下步骤就能解决这个问题

1、在修改数据库编码前先对数据库备份(虽然utf8mb4兼容utf8,但有备无患)
2、修改数据库的编码、表的编码、列的编码为utf8mb4
3、在Mysql数据库配置文件(my.ini)中加入如下设置

[client]
default-character-set = utf8mb4
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
[mysql]
default-character-set = utf8mb4


重新启动Mysql数据库,确认设置生效

 


SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
4、在获取数据库连接的时候执行sql:set names utf8mb4;

 

参考文章:http://zhidao.baidu.com/link?url=JRGVSJ0boYC7bxxoX8EiAvCvOBivWqfL5Won15ZQX0vRohSXIZnvM-1FsSD1SuJJogjs-Hmp0uv8enU2otp5_JffyjEqXWcFiXNXFUIJEGW

http://my.oschina.NET/leejun2005/blog/343353

https://segmentfault.com/q/1010000003711491

http://www.cnblogs.com/newstar/archive/2011/06/13/2079870.html




 



最最重要的几点如下:

第一、修改数据库的编码、表的编码、列(一般不用修改列的编码,因为修改完表的编码,列也会改变,如果遇到特殊情况可以尝试)的编码为utf8mb4
ALTER DATABASE xinmei_test CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE tb_name convert to character set utf8mb4 collate utf8mb4_general_ci;
ALTER TABLE tb_name CHANGE COLUMN `uname` `uname` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户名';

第二、mysql的配置文件my.cnf中[mysqld]下加入以下代码:
skip-character-set-client-handshake
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci

第三、重新启动Mysql数据库,确认设置生效
第四、如果PHP程序,在写入或者读取数据之前执行如下设置

set names 'utf8mb4';