"C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql" -uroot -psuntoyo 211 -N -e "Select concat(trim(Barcode),'|'),concat(trim(InventoryName),'|'),concat(price,'|'),trim(Description) From Inventory " > c:\\2.txt由于数据库是UTF8,所以文件编码也是UTF8,由于另外一个硬件上需要文件的编码格式为ANSI,所以怎么改?

解决方案 »

  1.   

    "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql " -uroot -psuntoyo 211 -N -e "Select CONVERT(concat(trim(Barcode),'|') USING gbk),CONVERT(concat(trim(InventoryName),'|') USING gbk),CONVERT(concat(price,'|') USING gbk),trim(Description) From Inventory " > c:\\2.txt
      

  2.   

    不可以,有错误Database backup
    *****************************Today is 2012-11-19
    Time is 15:31:44.03*****************************
    Please wait...halt your operation till backup process finishes!ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the ma
    nual that corresponds to your MySQL server version for the right syntax to use n
    ear 'USING gbk),convert(concat(trim(InventoryName),'|'),USING gbk),convert(conca
    t(pri' at line 1
    Press any key to continue . . .
      

  3.   

    在MYSQL中运行
    SELECT
    CONVERT(CONCAT(TRIM(Barcode),'|') USING gbk),CONVERT(CONCAT(TRIM(InventoryName),'|') USING gbk),CONVERT(CONCAT(price,'|') USING gbk),TRIM(Description) FROM Inventory 我在MYSQL5。5下测试没有问题
      

  4.   

    D:\MySQL55\bin>mysql -uroot -p -N -e "USE AA;Select concat(trim(Barcode),'|'
    ),concat(trim(InventoryName),'|'),concat(price,'|'),trim(Description) From Inven
    tory " > R:\TEMP\2.txtD:\MySQL55\bin>
      

  5.   

    是没有问题了,不过硬件需要的文件编码格式为ANSI,GBK还是一样有乱码.
      

  6.   

    你这个ANSI是什么?指的是latin1吗?
    那就把using gbk换成latin1试试.
      

  7.   

    SHOW CHARACTER SET 测试每一种字符集
      

  8.   

    好多种字符呀... 我只要文件另存为ANSI格式就不会出乱码.
      

  9.   


    "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql" -uroot -psuntoyo 211 -N -e "Select  Convert(concat(trim(Barcode),'|') using GBK) ,convert(concat(trim(InventoryName),'|') using GBK),convert(concat(price,'|') using GBK),convert(trim(Description) using GBK)  From Inventory " > c:\\2.txt --default-character-set=latin1
    这样格式为ANSI,不过导出的字为???,还是一样的问题.
      

  10.   

    这样格式为ANSI,不过导出的字为???,:
    不会吧,我测试了一下,库、表、字段UTF8,用CONVERT using GBK导出,中文是正常的
    否则是乱码
      

  11.   


    我数据库默认就是UTF8的,正常不加--default-character-set=latin1的话是全部显示,
    加的话就是????
      

  12.   

    你用SELECT INTO OUTFILE试试select * into outfile 'r:\temp\123.txt' CHARACTER SET gbk from tt
      

  13.   


    存在123.txt的话又报错,这样客户又要抱怨.
      

  14.   

    你可以在脚本中先 del c:\2.txt 
      

  15.   

    在你的BAT(脚步)文件中不能DEL 123。TXT?
      

  16.   


    为什么在我这边不能执行这个命令?Database backup
    *****************************Today is 2012-11-20
    Time is 10:31:25.37*****************************
    Please wait...halt your operation till backup process finishes!ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the ma
    nual that corresponds to your MySQL server version for the right syntax to use n
    ear 'CHARACTER SET gbk From Inventory' at line 1
    Press any key to continue . . .
      

  17.   


    "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql" -uroot -psuntoyo 211 -N -e 
    "Select * into outfile 'c:\\2.txt' CHARACTER SET gbk From Inventory " 
      

  18.   

    SELECT * INTO OUTFILE 'r://temp//123.txt' CHARACTER SET gbk FROM `cfg_product`
      

  19.   

    D:\MySQL55\bin>mysql -uroot -p123 -N -e "USE AA;SELECT * INTO OUTFILE 'r://temp
    //123.txt' CHARACTER SET gbk FROM `cfg_product`";D:\MySQL55\bin>
      

  20.   

    在MYSQL5。5下测试通过,你在MYSQL中运行,看看提示
      

  21.   

    测试了一下,5.1下确实不能运行,看来要么升级、要么用CONVERT
      

  22.   

    升级是暂时不可能了,CONVERT的话,TXT文件的编码是UTF8的话才能不出现乱码。
    一旦是ANSI的话,就算用CONVERT也是乱码.
      

  23.   

    你的字段是UTF8的,应该没有问题吧?还有其它字符集?
      

  24.   

    我生成出来的TXT是UTF8的,不过别人的硬件只支持ANSI的格式,所以我要手工另存为ANSI才可以。