回复:UTF-8、PHP和XML Mysql

回复:UTF-8、PHP和XML Mysql,php,vim,encoding,utf-8,Php,Vim,Encoding,Utf 8,这是一个与之相关的问题,我仍在努力解决这个问题 我有几个单独的问题,希望能帮助我理解如何解决我遇到的问题 我试图从数据库中读取值,并以UTF-8格式输出到文件中。但是我有编码问题,所以我想我应该从以下开始删除我的所有代码: $string = "Otivägen"; // then output to a file. 但是在vim中,我甚至无法输入该字符串,每次我粘贴它时,我都会得到OtivÃgen 我试图创建一个只有该字符串的空白PHP文件并将其上载,但当我再次cat该文件时,我得到了Oti

这是一个与之相关的问题,我仍在努力解决这个问题

我有几个单独的问题,希望能帮助我理解如何解决我遇到的问题

我试图从数据库中读取值,并以UTF-8格式输出到文件中。但是我有编码问题,所以我想我应该从以下开始删除我的所有代码:

$string = "Otivägen";
// then output to a file.
但是在
vim
中,我甚至无法输入该字符串,每次我粘贴它时,我都会得到
OtivÃgen

我试图创建一个只有该字符串的空白PHP文件并将其上载,但当我再次
cat
该文件时,我得到了
OtivÃgen

我的问题是

  • 为什么
    vim
    像这样显示它 这个
  • 如果文件被下载,它会被下载吗 如果应用程序 你在期待UTF-8吗
  • 如何将此字符串输出到 最终将成为XML的文件 UTF-8编码的文件

  • 目前我对编码的理解是有限的,我正在努力理解它。

    在Vim中,编码有很多混乱。有两种编码设置,
    'encoding'
    'fileencoding'

    'encoding'
    是与当前vim会话相关的一个会话-我一直将其保留为“utf-8”,但是我只使用gVim或启用unicode的终端

    'fileencoding'
    是文件本身的编码,它是自动检测的,或者可以用设置(
    ++enc
    )或我相信的模型线覆盖。它是根据
    'fileencodings'
    选项检测到的

    试试这个:

    vim
    :set encoding=utf-8
    :e ++enc=utf-8 test_file.php
    i
    $string = "Otiv<Ctrl-K>a:gen";
    :w
    
    另见

  • Vim支持UTF-8。默认情况下,您的系统可能不使用UTF-8-您可能会看到UTF-8文本以ASCII(或其他8位固定编码)显示

  • 应该这样。提供文件时,将文件的编码设置为UTF-8

  • 任何文件写入函数都会接受这一点-UTF-8只是一个字节序列


  • 这可能不是vim问题-如果您的终端软件未设置为utf-8,那么无论vim在做什么,您都会看到上述问题。

    我尝试了:gvim++enc=utf-8 test.me“-bash:gvim:command not found”所以我尝试了:vim++enc enc=utf-8 test.me“test.me”1L,处理命令行时检测到23C错误:E492:不是编辑器命令:+enc=utf-8我错在哪里?我怀疑您的Vim没有使用多字节支持编译。
    :echo有('multi_byte')
    说什么?如果它不是“1”,那么您几乎肯定没有启用unicode的vim,因此您需要安装另一个vim或自己编译它。这两个都不难:哪个操作系统?:echo有('multi_byte')。它会输出1Oops,我的坏:我在滥用++enc。试试上面编辑的指令。还是没有运气!我真的很讨厌
    编码
    /
    文件编码
    !您正在使用哪个版本的VIM?你的终端能显示ä字符吗?你的语言环境是什么?(终端中
    locale
    的输出?)如果您将整个系统切换到UTF-8语言环境,可能会有所帮助。尽管这会使您对所有非UTF-8文件名产生混乱:-(
    :help 'encoding'
    :help 'fileencoding'
    :help 'fileencodings'
    :help ++enc
    :help modeline