中文pppoe中文拨号的解决方案

1.首先,在编译服务器上编译出libiconv.ipk,make menuconfig命令之后,选择iconv选项,然后编译出来的bin文件中就有了libiconv软件。当然,在openwrt中也会有iconv命令。
接着,使用iconv -l命令查看支持的编码格式:

ANSI_X3.4-1968 ANSI_X3.4-1986 ASCII CP367 IBM367 ISO-IR-6 ISO646-US ISO_646.IRV:1991 US US-ASCII CSASCII
UTF-8
ISO-10646-UCS-2 UCS-2 CSUNICODE
UCS-2BE UNICODE-1-1 UNICODEBIG CSUNICODE11
UCS-2LE UNICODELITTLE
ISO-10646-UCS-4 UCS-4 CSUCS4
UCS-4BE
UCS-4LE
UTF-16
UTF-16BE
UTF-16LE
UTF-32
UTF-32BE
UTF-32LE
UNICODE-1-1-UTF-7 UTF-7 CSUNICODE11UTF7
UCS-2-INTERNAL
UCS-2-SWAPPED
UCS-4-INTERNAL
UCS-4-SWAPPED
C99
JAVA
CP819 IBM819 ISO-8859-1 ISO-IR-100 ISO8859-1 ISO_8859-1 ISO_8859-1:1987 L1 LATIN1 CSISOLATIN1
ISO-8859-2 ISO-IR-101 ISO8859-2 ISO_8859-2 ISO_8859-2:1987 L2 LATIN2 CSISOLATIN2
ISO-8859-3 ISO-IR-109 ISO8859-3 ISO_8859-3 ISO_8859-3:1988 L3 LATIN3 CSISOLATIN3
ISO-8859-4 ISO-IR-110 ISO8859-4 ISO_8859-4 ISO_8859-4:1988 L4 LATIN4 CSISOLATIN4
CYRILLIC ISO-8859-5 ISO-IR-144 ISO8859-5 ISO_8859-5 ISO_8859-5:1988 CSISOLATINCYRILLIC
ARABIC ASMO-708 ECMA-114 ISO-8859-6 ISO-IR-127 ISO8859-6 ISO_8859-6 ISO_8859-6:1987 CSISOLATINARABIC
ECMA-118 ELOT_928 GREEK GREEK8 ISO-8859-7 ISO-IR-126 ISO8859-7 ISO_8859-7 ISO_8859-7:1987 ISO_8859-7:2003 CSISOLATINGREEK
HEBREW ISO-8859-8 ISO-IR-138 ISO8859-8 ISO_8859-8 ISO_8859-8:1988 CSISOLATINHEBREW
ISO-8859-9 ISO-IR-148 ISO8859-9 ISO_8859-9 ISO_8859-9:1989 L5 LATIN5 CSISOLATIN5
ISO-8859-10 ISO-IR-157 ISO8859-10 ISO_8859-10 ISO_8859-10:1992 L6 LATIN6 CSISOLATIN6
ISO-8859-11 ISO8859-11 ISO_8859-11
ISO-8859-13 ISO-IR-179 ISO8859-13 ISO_8859-13 L7 LATIN7
ISO-8859-14 ISO-CELTIC ISO-IR-199 ISO8859-14 ISO_8859-14 ISO_8859-14:1998 L8 LATIN8
ISO-8859-15 ISO-IR-203 ISO8859-15 ISO_8859-15 ISO_8859-15:1998 LATIN-9
ISO-8859-16 ISO-IR-226 ISO8859-16 ISO_8859-16 ISO_8859-16:2001 L10 LATIN10
KOI8-R CSKOI8R
KOI8-U
KOI8-RU
CP1250 MS-EE WINDOWS-1250
CP1251 MS-CYRL WINDOWS-1251
CP1252 MS-ANSI WINDOWS-1252
CP1253 MS-GREEK WINDOWS-1253
CP1254 MS-TURK WINDOWS-1254
CP1255 MS-HEBR WINDOWS-1255
CP1256 MS-ARAB WINDOWS-1256
CP1257 WINBALTRIM WINDOWS-1257
CP1258 WINDOWS-1258
850 CP850 IBM850 CSPC850MULTILINGUAL
862 CP862 IBM862 CSPC862LATINHEBREW
866 CP866 IBM866 CSIBM866
MAC MACINTOSH MACROMAN CSMACINTOSH
MACCENTRALEUROPE
MACICELAND
MACCROATIAN
MACROMANIA
MACCYRILLIC
MACUKRAINE
MACGREEK
MACTURKISH
MACHEBREW
MACARABIC
MACTHAI
HP-ROMAN8 R8 ROMAN8 CSHPROMAN8
NEXTSTEP
ARMSCII-8
GEORGIAN-ACADEMY
GEORGIAN-PS
KOI8-T
CP154 CYRILLIC-ASIAN PT154 PTCP154 CSPTCP154
MULELAO-1
CP1133 IBM-CP1133
ISO-IR-166 TIS-620 TIS620 TIS620-0 TIS620.2529-1 TIS620.2533-0 TIS620.2533-1
CP874 WINDOWS-874
VISCII VISCII1.1-1 CSVISCII
TCVN TCVN-5712 TCVN5712-1 TCVN5712-1:1993
ISO-IR-14 ISO646-JP JIS_C6220-1969-RO JP CSISO14JISC6220RO
JISX0201-1976 JIS_X0201 X0201 CSHALFWIDTHKATAKANA
ISO-IR-87 JIS0208 JIS_C6226-1983 JIS_X0208 JIS_X0208-1983 JIS_X0208-1990 X0208 CSISO87JISX0208
ISO-IR-159 JIS_X0212 JIS_X0212-1990 JIS_X0212.1990-0 X0212 CSISO159JISX02121990
CN GB_1988-80 ISO-IR-57 ISO646-CN CSISO57GB1988
CHINESE GB_2312-80 ISO-IR-58 CSISO58GB231280
CN-GB-ISOIR165 ISO-IR-165
ISO-IR-149 KOREAN KSC_5601 KS_C_5601-1987 KS_C_5601-1989 CSKSC56011987
EUC-JP EUCJP EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE CSEUCPKDFMTJAPANESE
MS_KANJI SHIFT-JIS SHIFT_JIS SJIS CSSHIFTJIS
CP932
ISO-2022-JP CSISO2022JP
ISO-2022-JP-1
ISO-2022-JP-2 CSISO2022JP2
CN-GB EUC-CN EUCCN GB2312 CSGB2312
GBK
CP936 MS936 WINDOWS-936
GB18030
ISO-2022-CN CSISO2022CN
ISO-2022-CN-EXT
HZ HZ-GB-2312
EUC-TW EUCTW CSEUCTW
BIG-5 BIG-FIVE BIG5 BIGFIVE CN-BIG5 CSBIG5
CP950
BIG5-HKSCS:1999
BIG5-HKSCS:2001
BIG5-HKSCS BIG5-HKSCS:2004 BIG5HKSCS
EUC-KR EUCKR CSEUCKR
CP949 UHC
CP1361 JOHAB
ISO-2022-KR CSISO2022KR
437 CP437 IBM437 CSPC8CODEPAGE437
CP737
CP775 IBM775 CSPC775BALTIC
852 CP852 IBM852 CSPCP852
CP853
855 CP855 IBM855 CSIBM855
857 CP857 IBM857 CSIBM857
CP858
860 CP860 IBM860 CSIBM860
861 CP-IS CP861 IBM861 CSIBM861
863 CP863 IBM863 CSIBM863
CP864 IBM864 CSIBM864
865 CP865 IBM865 CSIBM865
869 CP-GR CP869 IBM869 CSIBM869
CP1125

刚开始使用这个命令的时候,敲完这个命令,页面显示很少的编码格式支持,所以,我就在网上找到一篇博客,说的是在编译的时候需要把

zhangge@Server-SW-X03:~/openwrt-3.10.14/package/libs/libiconv-full/patches$

目录下的100-开头的文件删除掉,因为这个文件会不支持所有亚洲编码。然后就可以使用更多的编码格式了,在这里感谢博主的分享。

然后我们就可以使用iconv命令了。

当然,之所以不支持中文拨号,是因为界面上的编码格式是 utf-8,而电信服务器上是 gb2312编码格式。
在这里,我提供一种思路,那就是在

/usr/lib/lua/luci/cbi.lua

中,改变两个函数的代码。
代码先贴一下:

-- UCI set
function Map.set(self, section, option, value)if type(value) ~= "table" or #value > 0 thenif option then                    if option == "username"  thenlocal is_success = self.uci:set(self.config, section, option, value)if is_success then               luci.sys.call("echo \" i am in UCI set.\" >>/dev/console")luci.sys.call("cp -rf /etc/config/network /etc/config/network1")luci.sys.call("cp -rf /etc/config/network /etc/config/network2")luci.sys.call("cd /etc/config/;iconv -f utf-8 -t gb2312 -c network1>network;sleep 1;cd /usr/lib/lua/luci/")luci.sys.call("sleep 15 >/dev/null 2>&1")luci.sys.call("echo \" i am in iconv final!\" >>/dev/console")return trueelsereturn falseendelseself.uci:set(self.config, section, option, value)end                  else                  return self.uci:set(self.config, section, value)end                             else                 return Map.del(self, section, option)end
end
-- UCI get
function Map.get(self, section, option)                                                                 if not section then                                                                                                                        return self.uci:get_all(self.config)                                                                                               elseif option then                                                                                                                         if option == "username" then                                                                                                       return self.uci:get(self.config..1, section, option)                          else                                                                                  return self.uci:get(self.config, section, option)   end                                                      else                                                                     return self.uci:get_all(self.config, section)                    end
end       

这样的话,与服务器通信的编码就是network文件,此文件是gb2312的,而显示在页面上的编码就是network1文件,文件是utf-8格式的。
然后,我们就可以使用中文拨号,来连接pppoe服务器,搞定!

中文pppoe中文拨号的解决方案相关推荐

  1. 通过js跳转url下载包含中文的文件乱码问题解决方案(java)

    通过js跳转url下载包含中文的文件乱码问题解决方案(java) 参考文章: (1)通过js跳转url下载包含中文的文件乱码问题解决方案(java) (2)https://www.cnblogs.co ...

  2. php源码 乱码 通达oa_php中文乱码问题的终极解决方案汇总

    前言 本文主要给大家介绍了关于php中文乱码问题的终极解决方案,分享出来供大家参考学习,在开始之前,我们先来谈谈为什么会出现中文乱码? 很多新手朋友学习PHP的时候,发现程序中的中文在输出的时候会出现 ...

  3. php调试代码时var_dump( )打印中文字符时出现乱码解决方案

    php调试代码时var_dump( )打印中文字符时出现乱码解决方案 参考文章: (1)php调试代码时var_dump( )打印中文字符时出现乱码解决方案 (2)https://www.cnblog ...

  4. [转载]关于中文乱码问题的一些解决方案和经验

    关于中文乱码问题的一些解决方案和经验 1.字节和unicode java内核是unicode的,就连class文件也是,但是很多媒体,包括文件/流的保存方式是使用字节流的.因此java要对这些字节流经 ...

  5. cmd命令行乱码 oracle_cmd 命令行模式下输出中文时显示乱码的解决方案

    cmd 命令行模式下输出中文时显示乱码的解决方案 因为发现默认值->属性窗口中已是936了,只好通过注册表直接改动:HKEY_CURRENT_USER\Console\%SystemRoot%_ ...

  6. python3完美解决在包含中文、中文符号的字符串中匹配手机号码和身份证号码的方案

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.前言 二.完美解决方案 总结 前言 在英文文本中去正则表达式同时去匹配手机号码和身份证号码很简单.但是,如果文本中 ...

  7. java判断字符串中是否包含中文 过滤中文

    package com.test;import java.util.regex.Matcher; import java.util.regex.Pattern;public class Test {@ ...

  8. “中文四六级”考试来了!《国际中文教育中文水平等级标准》发布

    新京报快讯 据教育部网站3月31日消息,经国家语委语言文字规范标准审定委员会审定,<国际中文教育中文水平等级标准>(GF0025-2021)(以下简称<标准>)近日由教育部.国 ...

  9. qt程序在Linux下字体乱了,解决linux/Ubuntu下Qt creater 界面程序在编译运行后无法显示中文或中文乱码问题!...

    本文解决的主要是界面程序编译运行后无法显示中文的问题,如果在creater 中无法输入中文,下载个IBus或者搜狗之类的中文输入法即可解决! 首先说乱码问题,这个很好解决: 如果是在linux下打开W ...

最新文章

  1. linux进程调度算法:分时调度策略、FIFO调度策略、RR调度策略
  2. TikTok上市无望?某大厂上海分公司跑路?
  3. Andorid App内部跟随熊语言改变
  4. [NewLife.Net]单机400万长连接压力测试
  5. ASP.NET Core 网站发布到Linux服务器
  6. nyoj91 阶乘之和
  7. Java LocalDate类| lengthOfYear()方法和示例
  8. java操作elasticsearch实现批量添加数据(bulk)
  9. jvm系列(五):tomcat性能调优和性能监控(visualvm)
  10. java 链接kafka单机版_kafka单机环境搭建及其基本使用
  11. 第一节-戴师兄数据分析学习笔记
  12. python权重矩阵_生成空间权重矩阵
  13. matlab sqrtm,zz矩阵开方sqrt()和sqrtm()的区别
  14. UE4使用时间轴制作简单开关门
  15. 通达信macd接口指标
  16. 欧几里得算法的实现(Java)
  17. Vue项目使用拦截器和JWT验证 完整案例
  18. 神奇的Redis延迟
  19. Qt网络编程电子白板
  20. 当3万座加油站遇到京东无人科技,3亿车主生活或迎新变化

热门文章

  1. spark-on-yarn日志配置
  2. 【解题报告】Leecode 859. 亲密字符串——Leecode每日一题系列
  3. 【已解决】Error occurred during loading data. Trying to use cache server_Python系列学习笔记
  4. 编译原理习题(含答案)——2程序设计语言及其文法——MOOC哈尔滨工业大学陈鄞配套
  5. element表格实现树形全选_vue+element UI实现树形表格带复选框的示例代码
  6. @value 数组_数据结构与算法:12 数组与稀疏矩阵
  7. 操作篇 ARP协议欺诈
  8. Python字符串介绍
  9. java静态局部变量_java中成员变量,局部变量,静态变量的辨析
  10. java的int、char、long、float、double对byte的转换,在通信的时候会用到