首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从拉丁字符集转换为unicode

从拉丁字符集转换为unicode
EN

Stack Overflow用户
提问于 2013-11-22 22:23:59
回答 1查看 449关注 0票数 0

我正在尝试将字符集从latin1更改为utf8

问题:密码不适用于法语字符。密码适用于特殊字符(如引号、括号、美元符号等)。如果我将代码部分中的字符集转换回latin1,则可以使用法语字符登录,但不能使用utf8登录。

到目前为止我做了什么:

  • 更改了数据库的字符集;我可以看到所有列类型都显示为utf8。我在数据库和表级别运行了查询。
  • 将代码部分的字符集更改为utf8。
  • 我的测试显示一切都很酷,我可以看到口音的法语字符很好,没有什么似乎是坏的。它只是给我带来麻烦的密码。

请建议:

  • 我是否也需要将数据本身更改为utf8?
  • 我运行alter命令,它将列字符集更改为utf8,这里是不是遗漏了什么?

我怀疑这可能是因为如果我将代码部分转换为latin1,密码工作正常。因此,我认为代码和数据库都是latin1,因此它可以识别特殊字符,但是当我将其更改为utf8时,它无法将特殊的法语字母解释为最初以latin1形式存储的字符。

PHP和MySQL都是最新版本。

由于我的答复很长,所以我决定在这里加上:

散列函数非常复杂,它使用的是md5、encode64和crypt函数的组合。我注意到拉丁文和unicode产生的pwd是不同的。这就是原因,我怀疑以前使用latin1生成的pwd可以匹配pwd,而不是转换后的unicode。同样,这种情况只发生在法语字母上,而不是0到127的ascii范围内。我不知道如何处理现有用户可以成功登录的情况,将char设置为unicode-8。我不能使用iconv(),因为我无法区分密码是使用latin1创建的还是使用unicode8创建的。除了更改数据库之外,我是否也需要更改数据,以及如何更改?如果我的想法是正确的,那么数据转换到unicode8可能也照顾到法语字符?

EN

回答 1

Stack Overflow用户

发布于 2013-11-22 22:54:13

如果需要将char从某些Unicode转换为另一个char,则可以使用此函数。

代码语言:javascript
复制
iconv()
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20155649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档